OpenSSH 9.2-ը թողարկվել է նախապես նույնականացման խոցելիության շտկմամբ

Հրապարակվել է OpenSSH 9.2-ի թողարկումը՝ հաճախորդի և սերվերի բաց ներդրում՝ SSH 2.0 և SFTP արձանագրություններով աշխատելու համար։ Նոր տարբերակը վերացնում է խոցելիությունը, որը հանգեցնում է հիշողության կրկնակի ազատմանը նախնական վավերացման փուլում: Տուժել է միայն OpenSSH 9.1 թողարկումը, խնդիրը չի երևում ավելի վաղ տարբերակներում:

Խոցելիության դրսևորման համար պայմաններ ստեղծելու համար բավական է փոխել SSH հաճախորդի դրոշակը «SSH-2.0-FuTTYSH_9.1p1»՝ «SSH_BUG_CURVE25519PAD» և «SSH_OLD_DHGEX» դրոշակները սահմանելու համար, որոնք կախված են SSH-ի տարբերակից: հաճախորդ. Այս դրոշները դնելուց հետո «options.kex_algorithms» բուֆերի հիշողությունը երկու անգամ ազատվում է՝ do_ssh2_kex() ֆունկցիան կատարելիս, որը կանչում է compat_kex_proposal() և do_authentication2() ֆունկցիան, որը կանչում է input_userauth_pdown(mm) ), copy_set_server_options() շղթայի երկայնքով, assemble_algorithms() և kex_assemble_names():

Խոցելիության համար աշխատանքային շահագործման ստեղծումը քիչ հավանական է համարվում, քանի որ շահագործման գործընթացը չափազանց բարդ է. հիշողության տեղաբաշխման ժամանակակից գրադարանները պաշտպանում են հիշողության կրկնակի ազատումից, իսկ նախահաստատման գործընթացը, որտեղ առկա է սխալը, աշխատում է կրճատված արտոնություններով մեկուսացված տարածքում: Sandbox միջավայրը.

Բացի նշված խոցելիությունից, նոր թողարկումը նաև շտկում է անվտանգության ևս երկու խնդիր.

  • «PermitRemoteOpen» պարամետրը մշակելիս սխալ է տեղի ունեցել, ինչի հետևանքով առաջին արգումենտը անտեսվել է, եթե այն տարբերվում է «ցանկացած» և «ոչ մի» արժեքներից: Խնդիրը հայտնվում է OpenSSH 8.7-ից ավելի նոր տարբերակներում և հանգեցնում է նրան, որ ստուգումը բաց է թողնվում, երբ միայն մեկ թույլտվություն է նշված:
  • Հարձակվողը, որը վերահսկում է անունները լուծելու համար օգտագործվող DNS սերվերը, կարող է հասնել հատուկ նիշերի (օրինակ՝ «*») փոխարինմանը known_hosts ֆայլերում, եթե CanonicalizeHostname և CanonicalizePermittedCNAMEs ընտրանքները միացված են կազմաձևում, և համակարգի լուծիչը չի ստուգում դրանց ճիշտությունը: պատասխաններ DNS սերվերից: Հարձակումը համարվում է անհավանական, քանի որ վերադարձված անունները պետք է համապատասխանեն CanonicalizePermittedCNAME-ի միջոցով նշված պայմաններին:

Այլ փոփոխություններ.

  • EnableEscapeCommandline կարգավորումն ավելացվել է ssh_config-ին ssh-ի համար՝ վերահսկելու համար, թե արդյոք միացված է հրամանի տող տրամադրող «~C» փախուստի հաջորդականությունը հաճախորդի կողմից: Լռելյայնորեն, «~C» կառավարումն այժմ անջատված է, որպեսզի օգտագործի ավազատուփի ավելի խիստ մեկուսացում, որը կարող է կոտրել համակարգերը, որոնք օգտագործում են «~C»՝ գործարկման ժամանակ նավահանգիստների փոխանցման համար:
  • ChannelTimeout հրահանգը ավելացվել է sshd_config-ին sshd-ի համար՝ ալիքի անգործության ժամկետը սահմանելու համար (ալիքները, որոնցում տրաֆիկ չի գրանցվում հրահանգում նշված ժամանակի համար, ավտոմատ կփակվեն): Տարբեր ժամկետներ կարող են սահմանվել նստաշրջանի, X11-ի, գործակալի և երթևեկության վերահղման համար:
  • UnusedConnectionTimeout դիրեկտիվը ավելացվել է sshd_config-ին sshd-ի համար, ինչը թույլ է տալիս սահմանել հաճախորդի կապերի դադարեցման ժամանակաշրջան, որոնք որոշակի ժամանակ եղել են առանց ակտիվ ալիքների:
  • «-V» տարբերակը ավելացվել է sshd-ին՝ տարբերակը ցուցադրելու համար, որը նման է ssh հաճախորդի նմանատիպ տարբերակին:
  • «ssh -G»-ի ելքում ավելացվել է «Host» տողը, որն արտացոլում է հոսթի անվան արգումենտի արժեքը:
  • «-X» տարբերակը ավելացվել է scp-ին և sftp-ին՝ SFTP արձանագրության պարամետրերը կառավարելու համար, ինչպիսիք են պատճենահանման բուֆերի չափը և առկախ հարցումների քանակը:
  • ssh-keyscan-ը թույլ է տալիս սկանավորել CIDR հասցեների ամբողջ տիրույթը, օրինակ՝ «ssh-keyscan 192.168.0.0/24»:

Source: opennet.ru

Добавить комментарий