Уязвимост Π² 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