ΠΠ°ΠΊΠ΅ΡΠΎΡ NPM-ΡΠ΅Π·ΠΎΠ»Π°ΡΠΎΡ Π½Π° pac, ΠΊΠΎΡ ΠΈΠΌΠ° Π½Π°Π΄ 3 ΠΌΠΈΠ»ΠΈΠΎΠ½ΠΈ ΠΏΡΠ΅Π·Π΅ΠΌΠ°ΡΠ° Π½Π΅Π΄Π΅Π»Π½ΠΎ, ΠΈΠΌΠ° ΡΠ°Π½Π»ΠΈΠ²ΠΎΡΡ (CVE-2021-23406) ΡΡΠΎ Π΄ΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π½Π΅Π³ΠΎΠ²ΠΈΠΎΡ JavaScript ΠΊΠΎΠ΄ Π΄Π° ΡΠ΅ ΠΈΠ·Π²ΡΡΠΈ Π²ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ°ΡΠ° ΠΏΡΠΈ ΠΈΡΠΏΡΠ°ΡΠ°ΡΠ΅ HTTP Π±Π°ΡΠ°ΡΠ° ΠΎΠ΄ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠ΅ Π½Π° Node.js ΠΊΠΎΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΊΠ° Π½Π° ΡΡΠ½ΠΊΡΠΈΡΠ°ΡΠ° Π·Π° Π°Π²ΡΠΎΠΌΠ°ΡΡΠΊΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠ° Π½Π° ΠΏΡΠΎΠΊΡΠΈ-ΡΠ΅ΡΠ²Π΅ΡΠΎΡ.
ΠΠ°ΠΊΠ΅ΡΠΎΡ pac-resolver Π³ΠΈ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ° PAC-Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈΡΠ΅ ΡΡΠΎ Π²ΠΊΠ»ΡΡΡΠ²Π°Π°Ρ ΡΠΊΡΠΈΠΏΡΠ° Π·Π° Π°Π²ΡΠΎΠΌΠ°ΡΡΠΊΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠ° Π½Π° ΠΏΡΠΎΠΊΡΠΈ. PAC-Π΄Π°ΡΠΎΡΠ΅ΠΊΠ°ΡΠ° ΡΠΎΠ΄ΡΠΆΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅Π½ JavaScript ΠΊΠΎΠ΄ ΡΠΎ ΡΡΠ½ΠΊΡΠΈΡΠ° FindProxyForURL ΠΊΠΎΡΠ° ΡΠ° Π΄Π΅ΡΠΈΠ½ΠΈΡΠ° Π»ΠΎΠ³ΠΈΠΊΠ°ΡΠ° Π·Π° ΠΈΠ·Π±ΠΎΡ Π½Π° ΠΏΡΠΎΠΊΡΠΈ Π²ΠΎ Π·Π°Π²ΠΈΡΠ½ΠΎΡΡ ΠΎΠ΄ Π΄ΠΎΠΌΠ°ΡΠΈΠ½ΠΎΡ ΠΈ Π±Π°ΡΠ°Π½Π°ΡΠ° URL-Π°Π΄ΡΠ΅ΡΠ°. Π‘ΡΡΡΠΈΠ½Π°ΡΠ° Π½Π° ΡΠ°Π½Π»ΠΈΠ²ΠΎΡΡΠ° Π΅ Π΄Π΅ΠΊΠ° Π·Π° ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ Π½Π° ΠΎΠ²ΠΎΡ JavaScript ΠΊΠΎΠ΄ Π²ΠΎ pac-resolver, ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅ VM API ΠΎΠ±Π΅Π·Π±Π΅Π΄Π΅Π½ Π²ΠΎ Node.js, ΡΡΠΎ Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° Π΄Π° ΠΈΠ·Π²ΡΡΠΈΡΠ΅ JavaScript ΠΊΠΎΠ΄ Π²ΠΎ ΡΠ°Π·Π»ΠΈΡΠ΅Π½ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π½Π° ΠΌΠΎΡΠΎΡΠΎΡ V8.
ΠΠ°Π²Π΅Π΄Π΅Π½ΠΎΡΠΎ API Π΅ Π΅ΠΊΡΠΏΠ»ΠΈΡΠΈΡΠ½ΠΎ ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΎ Π²ΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ°ΡΠ° Π΄Π΅ΠΊΠ° Π½Π΅ Π΅ Π½Π°ΠΌΠ΅Π½Π΅ΡΠΎ Π·Π° ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ Π½Π° Π½Π΅Π΄ΠΎΠ²Π΅ΡΠ»ΠΈΠ² ΠΊΠΎΠ΄, Π±ΠΈΠ΄Π΅ΡΡΠΈ Π½Π΅ ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡΠ²Π° ΡΠ΅Π»ΠΎΡΠ½Π° ΠΈΠ·ΠΎΠ»Π°ΡΠΈΡΠ° Π½Π° ΠΊΠΎΠ΄ΠΎΡ ΡΡΠΎ ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π° ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° ΠΏΡΠΈΡΡΠ°ΠΏ Π΄ΠΎ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»Π½ΠΈΠΎΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ. ΠΡΠΎΠ±Π»Π΅ΠΌΠΎΡ Π΅ ΡΠ΅ΡΠ΅Π½ Π²ΠΎ pac-resolver 5.0.0, ΠΊΠΎΡ Π΅ ΠΏΡΠ΅ΠΌΠ΅ΡΡΠ΅Π½ Π΄Π° ΡΠ° ΠΊΠΎΡΠΈΡΡΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° vm2, ΠΊΠΎΡΠ° ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡΠ²Π° ΠΏΠΎΠ²ΠΈΡΠΎΠΊΠΎ Π½ΠΈΠ²ΠΎ Π½Π° ΠΈΠ·ΠΎΠ»Π°ΡΠΈΡΠ° ΠΏΠΎΠ³ΠΎΠ΄Π½ΠΎ Π·Π° ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ Π½Π° Π½Π΅Π΄ΠΎΠ²Π΅ΡΠ»ΠΈΠ² ΠΊΠΎΠ΄.
ΠΠΎΠ³Π° ΠΊΠΎΡΠΈΡΡΠΈ ΡΠ°Π½Π»ΠΈΠ²Π° Π²Π΅ΡΠ·ΠΈΡΠ° Π½Π° pac-resolver, Π½Π°ΠΏΠ°ΡΠ°ΡΠΎΡ ΠΏΡΠ΅ΠΊΡ ΠΏΡΠ΅Π½ΠΎΡ Π½Π° ΡΠΏΠ΅ΡΠΈΡΠ°Π»Π½ΠΎ Π΄ΠΈΠ·Π°ΡΠ½ΠΈΡΠ°Π½Π° PAC-Π΄Π°ΡΠΎΡΠ΅ΠΊΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΠΎΡΡΠΈΠ³Π½Π΅ ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ Π½Π° Π½Π΅Π³ΠΎΠ²ΠΈΠΎΡ JavaScript ΠΊΠΎΠ΄ Π²ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π½Π° ΠΊΠΎΠ΄ΠΎΡ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠΎΡ ΠΊΠΎΡΠΈΡΡΠ΅ΡΡΠΈ Node.js, Π΄ΠΎΠΊΠΎΠ»ΠΊΡ ΠΎΠ²ΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡ ΠΊΠΎΡΠΈΡΡΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΊΠΎΠΈ ΠΈΠΌΠ°Π°Ρ Π·Π°Π²ΠΈΡΠ½ΠΎΡΡΠΈ ΡΠΎ pac-resolver. ΠΠ°ΡΠΏΠΎΠΏΡΠ»Π°ΡΠ½Π°ΡΠ° ΠΎΠ΄ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΡΠΈΡΠ½ΠΈΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π΅ Proxy-Agent, Π½Π°Π²Π΅Π΄Π΅Π½Π° ΠΊΠ°ΠΊΠΎ Π·Π°Π²ΠΈΡΠ½ΠΎΡΡ ΠΎΠ΄ 360 ΠΏΡΠΎΠ΅ΠΊΡΠΈ, Π²ΠΊΠ»ΡΡΡΠ²Π°ΡΡΠΈ urllib, aws-cdk, mailgun.js ΠΈ firebase-tools, ΡΠΎ Π²ΠΊΡΠΏΠ½ΠΎ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΠ΄ ΡΡΠΈ ΠΌΠΈΠ»ΠΈΠΎΠ½ΠΈ ΠΏΡΠ΅Π·Π΅ΠΌΠ°ΡΠ° Π½Π΅Π΄Π΅Π»Π½ΠΎ.
ΠΠΊΠΎ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ°ΡΠ° ΠΊΠΎΡΠ° ΠΈΠΌΠ° Π·Π°Π²ΠΈΡΠ½ΠΎΡΡ ΠΎΠ΄ Pac-resolver Π²ΡΠΈΡΠ° PAC-Π΄Π°ΡΠΎΡΠ΅ΠΊΠ° ΠΎΠ±Π΅Π·Π±Π΅Π΄Π΅Π½Π° ΠΎΠ΄ ΡΠΈΡΡΠ΅ΠΌ ΠΊΠΎΡ Π³ΠΎ ΠΏΠΎΠ΄Π΄ΡΠΆΡΠ²Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΡ Π·Π° Π°Π²ΡΠΎΠΌΠ°ΡΡΠΊΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠ° Π½Π° ΠΏΡΠΎΠΊΡΠΈ WPAD, ΡΠΎΠ³Π°Ρ Π½Π°ΠΏΠ°ΡΠ°ΡΠΈΡΠ΅ ΡΠΎ ΠΏΡΠΈΡΡΠ°ΠΏ Π΄ΠΎ Π»ΠΎΠΊΠ°Π»Π½Π°ΡΠ° ΠΌΡΠ΅ΠΆΠ° ΠΌΠΎΠΆΠ°Ρ Π΄Π° ΡΠ° ΠΊΠΎΡΠΈΡΡΠ°Ρ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΡΠ°ΡΠ° Π½Π° ΠΏΠΎΡΡΠ°Π²ΠΊΠΈΡΠ΅ Π·Π° ΠΏΡΠΎΠΊΡΠΈ ΠΏΡΠ΅ΠΊΡ DHCP Π·Π° Π΄Π° Π²ΠΌΠ΅ΡΠ½Π°Ρ ΠΌΠ°Π»ΠΈΡΠΈΠΎΠ·Π½ΠΈ PAC-Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ.
ΠΠ·Π²ΠΎΡ: opennet.ru