Pagkahuyang sa node-netmask NPM package nga gigamit sa 270 ka libo nga mga proyekto

Ang node-netmask NPM nga pakete, nga adunay mga 3 milyon nga pag-download matag semana ug gigamit ingon usa ka pagsalig sa labaw sa 270 ka libo nga mga proyekto sa GitHub, adunay usa ka kahuyang (CVE-2021-28918) nga nagtugot niini sa pag-bypass sa mga tseke nga naggamit sa netmask aron mahibal-an ang panghitabo aron matubag ang mga sakup o para sa pagsala. Ang isyu naayo sa pagpagawas sa node-netmask 2.0.0.

Ang kahuyang nagpaposible sa pagtratar sa usa ka eksternal nga IP address isip usa ka adres gikan sa internal nga network ug vice versa, ug uban sa usa ka piho nga lohika sa paggamit sa node-netmask module sa aplikasyon aron ipatuman ang SSRF (Server-side request forgery), RFI (Remote File Inclusion) ug LFI (Local File Inclusion) nga mga pag-atake ) aron ma-access ang mga kapanguhaan sa internal nga network ug ilakip ang eksternal o lokal nga mga file sa execution chain. Ang problema mao nga sumala sa espesipikasyon, ang address string values ​​nga nagsugod sa usa ka zero kinahanglang hubaron nga octal nga mga numero, apan ang node-netmask module wala magtagad niini ug nagtratar kanila isip decimal nga mga numero.

Pananglitan, ang usa ka tig-atake mahimong mohangyo ug lokal nga kahinguhaan pinaagi sa pagpiho sa kantidad nga "0177.0.0.1", nga katumbas sa "127.0.0.1", apan ang "node-netmask" nga module isalikway ang null, ug tagdon ang 0177.0.0.1β€³ isip " 177.0.0.1", nga sa aplikasyon sa pagtimbang-timbang sa mga lagda sa pag-access, dili posible nga mahibal-an ang pagkatawo sa "127.0.0.1". Sa susama, ang usa ka tig-atake mahimong magtino sa adres nga "0127.0.0.1", nga kinahanglan parehas sa "87.0.0.1", apan isipon nga "127.0.0.1" sa module nga "node-netmask". Sa susama, mahimo nimong manikas ang tseke alang sa pag-access sa mga adres sa intranet pinaagi sa pagtino sa mga kantidad sama sa "012.0.0.1" (katumbas sa "10.0.0.1", apan iproseso ingon 12.0.0.1 sa panahon sa pagsusi).

Ang mga tigdukiduki nga nag-ila sa problema nagtawag sa problema nga katalagman ug naghatag daghang mga senaryo sa pag-atake, apan kadaghanan niini morag pangagpas. Pananglitan, naghisgot kini bahin sa posibilidad sa pag-atake sa usa ka aplikasyon nga nakabase sa Node.js nga nagtukod sa mga eksternal nga koneksyon aron mangayo usa ka kapanguhaan nga gibase sa mga parameter o data sa hangyo sa pag-input, apan ang aplikasyon wala espesipiko nga ginganlan o detalyado. Bisan kung makit-an nimo ang mga aplikasyon nga nag-load sa mga kapanguhaan base sa gisulod nga mga IP address, dili kini hingpit nga klaro kung giunsa ang pagkahuyang mahimong mapahimuslan sa praktis nga wala’y koneksyon sa usa ka lokal nga network o wala makuha ang kontrol sa mga "salamin" nga mga adres sa IP.

Ang mga tigdukiduki nagtuo lamang nga ang mga tag-iya sa 87.0.0.1 (Telecom Italia) ug 0177.0.0.1 (Brasil Telecom) makahimo sa pag-bypass sa access restriction ngadto sa 127.0.0.1. Ang usa ka mas realistiko nga senaryo mao ang pagpahimulos sa pagkahuyang aron malaktawan ang lainlaing mga lista sa block sa kilid sa aplikasyon. Ang isyu mahimo usab nga magamit sa pagpaambit sa kahulugan sa intranet range sa NPM module nga "private-ip".

Source: opennet.ru

Idugang sa usa ka comment