Уязвимост Π² NPM ΠΏΠ°ΠΊΠ΅Ρ‚Π° node-netmask, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ Π² 270 хиляди ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

Π’ NPM ΠΏΠ°ΠΊΠ΅Ρ‚Π° node-netmask, ΠΊΠΎΠΉΡ‚ΠΎ ΠΈΠΌΠ° ΠΎΠΊΠΎΠ»ΠΎ 3 ΠΌΠΈΠ»ΠΈΠΎΠ½Π° изтСгляния Π½Π° сСдмица ΠΈ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠ°Ρ‚ΠΎ зависимост ΠΎΡ‚ Π½Π°Π΄ 270 хиляди ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π² GitHub, Π΅ ΠΎΡ‚ΠΊΡ€ΠΈΡ‚Π° уязвимост (CVE-2021-28918), която позволява заобикалянС Π½Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ, Π² ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΡ€Π΅ΠΆΠΎΠ²Π°Ρ‚Π° маска сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° опрСдСлянС Π½Π° принадлСТност към адрСсни Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΈ ΠΈΠ»ΠΈ Π·Π° Ρ„ΠΈΠ»Ρ‚Ρ€ΠΈΡ€Π°Π½Π΅. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡŠΡ‚ Π΅ Ρ€Π΅ΡˆΠ΅Π½ Π² вСрсията node-netmask 2.0.0.

Уязвимостта позволява ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° външСн IP адрСс ΠΊΠ°Ρ‚ΠΎ адрСс ΠΎΡ‚ Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ½Π°Ρ‚Π° ΠΌΡ€Π΅ΠΆΠ° ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ, Π° ΠΏΡ€ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° Π»ΠΎΠ³ΠΈΠΊΠ° Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΌΠΎΠ΄ΡƒΠ»Π° node-netmask Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ, ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ°Ρ‚ Π°Ρ‚Π°ΠΊΠΈ SSRF (Server-side request forgery), RFI (Remote File Inclusion) ΠΈ LFI (Local File Inclusion) Π·Π° Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ рСсурси във Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ½Π°Ρ‚Π° ΠΌΡ€Π΅ΠΆΠ° ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅ Π² ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° външни ΠΈΠ»ΠΈ Π»ΠΎΠΊΠ°Π»Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡŠΡ‚ Π΅ Π² Ρ‚ΠΎΠ²Π°, Ρ‡Π΅ Π² ΡΡŠΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΈΠ΅ със спСцификацията, стринговитС стойности Π½Π° адрСси, ΠΊΠΎΠΈΡ‚ΠΎ Π·Π°ΠΏΠΎΡ‡Π²Π°Ρ‚ с Π½ΡƒΠ»Π°, трябва Π΄Π° сС ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€Π°Ρ‚ ΠΊΠ°Ρ‚ΠΎ осмични числа, Π½ΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΡŠΡ‚ β€žnode-netmaskβ€œ Π½Π΅ ΠΎΡ‚Ρ‡ΠΈΡ‚Π° Ρ‚Π°Π·ΠΈ особСност ΠΈ Π³ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π° ΠΊΠ°Ρ‚ΠΎ дСсСтични числа.

НапримСр, атакуващият ΠΌΠΎΠΆΠ΅ Π΄Π° поиска Π»ΠΎΠΊΠ°Π»Π΅Π½ рСсурс, ΡƒΠΊΠ°Π·Π²Π°ΠΉΠΊΠΈ стойността β€ž0177.0.0.1β€œ, която ΡΡŠΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π° Π½Π° β€ž127.0.0.1β€œ, Π½ΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΡŠΡ‚ β€žnode-netmaskβ€œ Ρ‰Π΅ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€Π° Π½ΡƒΠ»Π°Ρ‚Π° ΠΈ Ρ‰Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΈ 0177.0.0.1 ΠΊΠ°Ρ‚ΠΎ β€ž177.0.0.1β€œ, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΏΡ€ΠΈ ΠΎΡ†Π΅Π½ΠΊΠ° Π½Π° ΠΏΡ€Π°Π²ΠΈΠ»Π°Ρ‚Π° Π·Π° Π΄ΠΎΡΡ‚ΡŠΠΏ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ няма Π΄Π° Π΄Π°Π΄Π΅ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π΄Π° сС ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈ равСнството с β€ž127.0.0.1β€œ. Аналогично, атакуващият ΠΌΠΎΠΆΠ΅ Π΄Π° ΡƒΠΊΠ°ΠΆΠ΅ адрСс β€ž0127.0.0.1β€œ, ΠΊΠΎΠΉΡ‚ΠΎ трябва Π΄Π° съвпада с β€ž87.0.0.1β€œ, Π½ΠΎ Π² ΠΌΠΎΠ΄ΡƒΠ»Π° β€žnode-netmaskβ€œ Ρ‰Π΅ бъдС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π΅Π½ ΠΊΠ°Ρ‚ΠΎ β€ž127.0.0.1β€œ. По ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ Π½Π°Ρ‡ΠΈΠ½ ΠΌΠΎΠΆΠ΅ Π΄Π° сС Π·Π°ΠΎΠ±ΠΈΠΊΠΎΠ»ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°Ρ‚Π° Π·Π° Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ ΠΈΠ½Ρ‚Ρ€Π°Π½Π΅Ρ‚ адрСси, ΠΊΠ°Ρ‚ΠΎ сС посочат стойности ΠΊΠ°Ρ‚ΠΎ β€ž012.0.0.1β€œ (Π΅ΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ‚ Π½Π° β€ž10.0.0.1β€œ, Π½ΠΎ ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ‰Π΅ бъдС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π΅Π½ ΠΊΠ°Ρ‚ΠΎ 12.0.0.1).

Π˜Π·ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈΡ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ ΠΎΡ‚ΠΊΡ€ΠΈΡ…Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, Π³ΠΎ Π½Π°Ρ€ΠΈΡ‡Π°Ρ‚ катастрофалСн ΠΈ прСдставят няколко сцСнария Π·Π° Π°Ρ‚Π°ΠΊΠΈ, Π½ΠΎ ΠΏΠΎΠ²Π΅Ρ‡Π΅Ρ‚ΠΎ ΠΎΡ‚ тях ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π°Ρ‚ Ρ…ΠΈΠΏΠΎΡ‚Π΅Ρ‚ΠΈΡ‡Π½ΠΈ. НапримСр, сС Π³ΠΎΠ²ΠΎΡ€ΠΈ Π·Π° Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π΄Π° сС Π°Ρ‚Π°ΠΊΡƒΠ²Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° Node.js, ΠΊΠΎΠ΅Ρ‚ΠΎ установява външни Π²Ρ€ΡŠΠ·ΠΊΠΈ, Π·Π° Π΄Π° поиска рСсурс Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ ΠΈΠ»ΠΈ Π²Ρ…ΠΎΠ΄Π½ΠΈ Π΄Π°Π½Π½ΠΈ, Π½ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ сС спомСнава ΠΈ Π½Π΅ сС Π΄Π΅Ρ‚Π°ΠΉΠ»ΠΈΠ·ΠΈΡ€Π°. Π”ΠΎΡ€ΠΈ ΠΈ Π΄Π° сС открият прилоТСния, ΠΊΠΎΠΈΡ‚ΠΎ Π·Π°Ρ€Π΅ΠΆΠ΄Π°Ρ‚ рСсурси Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° ΠΏΠΎΠ΄Π°Π΄Π΅Π½ΠΈ IP адрСси, Π½Π΅ Π΅ съвсСм ясно ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠΈ уязвимостта Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° Π±Π΅Π· ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅ с Π»ΠΎΠΊΠ°Π»Π½Π°Ρ‚Π° ΠΌΡ€Π΅ΠΆΠ° ΠΈΠ»ΠΈ Π±Π΅Π· ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ» Π²ΡŠΡ€Ρ…Ρƒ β€žΠ·Π΅Ρ€ΠΊΠ°Π»Π½ΠΈΡ‚Π΅β€œ IP адрСси.

Π˜Π·ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈΡ‚Π΅ само ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Ρ‚, Ρ‡Π΅ собствСницитС Π½Π° 87.0.0.1 (Telecom Italia) ΠΈ 0177.0.0.1 (Brasil Telecom) ΠΈΠΌΠ°Ρ‚ способността Π΄Π° заобиколят ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π·Π° Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ 127.0.0.1. По-рСалистичСн сцСнарий Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° уязвимост Π·Π° заобикалянС Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΡΠΏΠΈΡΡŠΡ†ΠΈ Π·Π° Π±Π»ΠΎΠΊΠΈΡ€Π°Π½Π΅, Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ Π½Π° страната Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡŠΡ‚ ΠΌΠΎΠΆΠ΅ ΡΡŠΡ‰ΠΎ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΠΎΠ±ΠΌΠ΅Π½ Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΈΠ½Ρ‚Ρ€Π°Π½Π΅Ρ‚ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΈ Π² NPM ΠΌΠΎΠ΄ΡƒΠ»Π° β€žprivate-ipβ€œ.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster