Π ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΈΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π½Π° Π΅Π·ΠΈΡΠΈΡΠ΅ Rust and Go ΡΠ° ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΠ°Π½ΠΈ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ, ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° IP Π°Π΄ΡΠ΅ΡΠΈ Ρ ΠΎΡΠΌΠΈΡΠ½ΠΈ ΡΠΈΡΡΠΈ Π²ΡΠ² ΡΡΠ½ΠΊΡΠΈΠΈΡΠ΅ Π·Π° Π°Π½Π°Π»ΠΈΠ· Π½Π° Π°Π΄ΡΠ΅ΡΠΈ. Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ Π΄Π° ΡΠ΅ Π·Π°ΠΎΠ±ΠΈΠΊΠΎΠ»ΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈΡΠ΅ Π·Π° Π²Π°Π»ΠΈΠ΄Π½ΠΈ Π°Π΄ΡΠ΅ΡΠΈ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π° Π΄Π° ΡΠ΅ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ° Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ Π°Π΄ΡΠ΅ΡΠΈ Π½Π° loopback ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ (127.xxx) ΠΈΠ»ΠΈ ΠΈΠ½ΡΡΠ°Π½Π΅Ρ ΠΏΠΎΠ΄ΠΌΡΠ΅ΠΆΠΈ ΠΏΡΠΈ ΠΈΠ·Π²ΡΡΡΠ²Π°Π½Π΅ Π½Π° SSRF (Server-side request forgery) Π°ΡΠ°ΠΊΠΈ. Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈΡΠ΅ ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠ°Π²Π°Ρ ΡΠΈΠΊΡΠ»Π° ΠΎΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ, ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΠ°Π½ΠΈ ΠΏΠΎ-ΡΠ°Π½ΠΎ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈΡΠ΅ node-netmask (JavaScript, CVE-2021-28918, CVE-2021-29418), private-ip (JavaScript, CVE-2020-28360), ipaddress (Python, CVE- 2021-29921), Data::Validate::IP (Perl, CVE-2021-29662) ΠΈ Net::Netmask (Perl, CVE-2021-29424).
Π‘ΠΏΠΎΡΠ΅Π΄ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΡΠ° ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈΡΠ΅ Π½Π° Π½ΠΈΠ·Π° Π½Π° IP Π°Π΄ΡΠ΅Ρ, Π·Π°ΠΏΠΎΡΠ²Π°ΡΠΈ Ρ Π½ΡΠ»Π°, ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΠ°Ρ ΠΊΠ°ΡΠΎ ΠΎΡΠΌΠΈΡΠ½ΠΈ ΡΠΈΡΠ»Π°, Π½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π½Π΅ Π²Π·Π΅ΠΌΠ°Ρ ΡΠΎΠ²Π° ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ ΠΈ ΠΏΡΠΎΡΡΠΎ ΠΈΠ·Ρ Π²ΡΡΠ»ΡΡ Π½ΡΠ»Π°ΡΠ°, ΡΡΠ΅ΡΠΈΡΠ°ΠΉΠΊΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡΡΠ° ΠΊΠ°ΡΠΎ Π΄Π΅ΡΠ΅ΡΠΈΡΠ½ΠΎ ΡΠΈΡΠ»ΠΎ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ ΡΠΈΡΠ»ΠΎΡΠΎ 0177 Π² ΠΎΡΠΌΠΈΡΠ½Π° ΡΠΈΡΡΠ΅ΠΌΠ° Π΅ ΡΠ°Π²Π½ΠΎ Π½Π° 127 Π² Π΄Π΅ΡΠ΅ΡΠΈΡΠ½Π° ΡΠΈΡΡΠ΅ΠΌΠ°. ΠΠ°ΠΏΠ°Π΄Π°ΡΠ΅Π»ΡΡ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΠΎΠΈΡΠΊΠ° ΡΠ΅ΡΡΡΡ, ΠΊΠ°ΡΠΎ ΠΏΠΎΡΠΎΡΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡΡΠ° "0177.0.0.1", ΠΊΠΎΡΡΠΎ Π² Π΄Π΅ΡΠ΅ΡΠΈΡΠ½Π° ΡΠΈΡΡΠ΅ΠΌΠ° ΡΡΠΎΡΠ²Π΅ΡΡΡΠ²Π° Π½Π° "127.0.0.1". ΠΠΊΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ½Π°ΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°, ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π½ΡΠΌΠ° Π΄Π° ΠΎΡΠΊΡΠΈΠ΅, ΡΠ΅ Π°Π΄ΡΠ΅ΡΡΡ 0177.0.0.1 Π΅ Π² ΠΏΠΎΠ΄ΠΌΡΠ΅ΠΆΠ°ΡΠ° 127.0.0.1/8, Π½ΠΎ Π²ΡΡΡΠ½ΠΎΡΡ ΠΏΡΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ Π½Π° Π·Π°ΡΠ²ΠΊΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΠΎΠ»ΡΡΠΈ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ Π°Π΄ΡΠ΅ΡΠ° β0177.0.0.1β, ΠΊΠΎΠΉΡΠΎ ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π°Ρ ΠΊΠ°ΡΠΎ 127.0.0.1. ΠΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ Π½Π°ΡΠΈΠ½ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·ΠΌΠ°ΠΌΠΈΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ°ΡΠ° Π½Π° Π΄ΠΎΡΡΡΠΏΠ° Π΄ΠΎ ΠΈΠ½ΡΡΠ°Π½Π΅Ρ Π°Π΄ΡΠ΅ΡΠΈ, ΠΊΠ°ΡΠΎ ΠΏΠΎΡΠΎΡΠΈΡΠ΅ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ ΠΊΠ°ΡΠΎ β012.0.0.1β (Π΅ΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΎ Π½Π° β10.0.0.1β).
Π Rust ΡΡΠ°Π½Π΄Π°ΡΡΠ½Π°ΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° βstd::netβ Π±Π΅ΡΠ΅ Π·Π°ΡΠ΅Π³Π½Π°ΡΠ° ΠΎΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ (CVE-2021-29922). ΠΠ½Π°Π»ΠΈΠ·Π°ΡΠΎΡΡΡ Π½Π° IP Π°Π΄ΡΠ΅ΡΠΈ Π½Π° ΡΠ°Π·ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΎΡΡ Π²ΡΡΠ»ΠΈ Π½ΡΠ»Π° ΠΏΡΠ΅Π΄ΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈΡΠ΅ Π² Π°Π΄ΡΠ΅ΡΠ°, Π½ΠΎ ΡΠ°ΠΌΠΎ Π°ΠΊΠΎ Π±ΡΡ Π° ΠΏΠΎΡΠΎΡΠ΅Π½ΠΈ Π½Π΅ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ ΡΡΠΈ ΡΠΈΡΡΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ β0177.0.0.1β ΡΠ΅ ΡΠ΅ Π²ΡΠ·ΠΏΡΠΈΠ΅ΠΌΠ΅ ΠΊΠ°ΡΠΎ Π½Π΅Π²Π°Π»ΠΈΠ΄Π½Π° ΡΡΠΎΠΉΠ½ΠΎΡΡ ΠΈ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»Π΅Π½ ΡΠ΅Π·ΡΠ»ΡΠ°Ρ ΡΠ΅ Π±ΡΠ΄Π΅ Π²ΡΡΠ½Π°Ρ Π² ΠΎΡΠ³ΠΎΠ²ΠΎΡ Π½Π° 010.8.8.8 ΠΈ 127.0.026.1. ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡΠ°, ΠΊΠΎΠΈΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ std::net::IpAddr, ΠΊΠΎΠ³Π°ΡΠΎ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ°Ρ ΡΠΊΠ°Π·Π°Π½ΠΈ ΠΎΡ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ Π°Π΄ΡΠ΅ΡΠΈ, ΡΠ° ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»Π½ΠΎ ΠΏΠΎΠ΄Π°ΡΠ»ΠΈΠ²ΠΈ Π½Π° SSRF (ΡΠ°Π»ΡΠΈΡΠΈΡΠΈΡΠ°Π½Π΅ Π½Π° Π·Π°ΡΠ²ΠΊΠ° ΠΎΡ ΡΡΡΠ°Π½Π° Π½Π° ΡΡΡΠ²ΡΡΠ°), RFI (Π²ΠΊΠ»ΡΡΠ²Π°Π½Π΅ Π½Π° ΠΎΡΠ΄Π°Π»Π΅ΡΠ΅Π½ ΡΠ°ΠΉΠ») ΠΈ LFI (Π²ΠΊΠ»ΡΡΠ²Π°Π½Π΅ Π½Π° Π»ΠΎΠΊΠ°Π»Π΅Π½ ΡΠ°ΠΉΠ») Π°ΡΠ°ΠΊΠΈ. Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡΡΠ° Π±Π΅ΡΠ΅ ΠΊΠΎΡΠΈΠ³ΠΈΡΠ°Π½Π° Π² ΠΊΠ»ΠΎΠ½Π° Rust 1.53.0.
Π Go ΡΡΠ°Π½Π΄Π°ΡΡΠ½Π°ΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° βnetβ Π΅ Π·Π°ΡΠ΅Π³Π½Π°ΡΠ° (CVE-2021-29923). ΠΠ³ΡΠ°Π΄Π΅Π½Π°ΡΠ° ΡΡΠ½ΠΊΡΠΈΡ net.ParseCIDR ΠΏΡΠΎΠΏΡΡΠΊΠ° Π²ΠΎΠ΄Π΅ΡΠΈΡΠ΅ Π½ΡΠ»ΠΈ ΠΏΡΠ΅Π΄ΠΈ ΠΎΡΠΌΠΈΡΠ½ΠΈΡΠ΅ ΡΠΈΡΠ»Π°, Π²ΠΌΠ΅ΡΡΠΎ Π΄Π° Π³ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π°ΡΠ°ΠΊΡΠ²Π°Ρ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΡΠ΅Π΄Π°Π΄Π΅ ΡΡΠΎΠΉΠ½ΠΎΡΡΡΠ° 00000177.0.0.1, ΠΊΠΎΡΡΠΎ, ΠΊΠΎΠ³Π°ΡΠΎ Π±ΡΠ΄Π΅ ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½Π° Π²ΡΠ² ΡΡΠ½ΠΊΡΠΈΡΡΠ° net.ParseCIDR(00000177.0.0.1/24), ΡΠ΅ Π±ΡΠ΄Π΅ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° ΠΊΠ°ΡΠΎ 177.0.0.1/24, Π° Π½Π΅ 127.0.0.1/24. ΠΡΠΎΠ±Π»Π΅ΠΌΡΡ ΡΠ΅ ΠΏΡΠΎΡΠ²ΡΠ²Π° ΠΈ Π² ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° Kubernetes. Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡΡΠ° Π΅ ΠΊΠΎΡΠΈΠ³ΠΈΡΠ°Π½Π° Π² Go Π²Π΅ΡΡΠΈΡ 1.16.3 ΠΈ Π±Π΅ΡΠ° 1.17.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru