ΠΡΠΊΡΠΈΠ΅Π½Π° Π΅ Π·Π»ΠΎΠ½Π°ΠΌΠ΅ΡΠ½Π° ΠΏΡΠΎΠΌΠ΅Π½Π° Π²ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠΎΡ node-ipc NPM (CVE-2022-23812), ΡΠΎ 25% Π²Π΅ΡΠΎΡΠ°ΡΠ½ΠΎΡΡ ΡΠΎΠ΄ΡΠΆΠΈΠ½Π°ΡΠ° Π½Π° ΡΠΈΡΠ΅ Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ ΡΡΠΎ ΠΈΠΌΠ°Π°Ρ ΠΏΡΠΈΡΡΠ°ΠΏ Π·Π° Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΠ΅ Π΄Π° ΡΠ΅ Π·Π°ΠΌΠ΅Π½Π°Ρ ΡΠΎ Π·Π½Π°ΠΊΠΎΡ ββ€οΈβ. ΠΠ»ΠΎΠ½Π°ΠΌΠ΅ΡΠ½ΠΈΠΎΡ ΠΊΠΎΠ΄ ΡΠ΅ Π°ΠΊΡΠΈΠ²ΠΈΡΠ° ΡΠ°ΠΌΠΎ ΠΊΠΎΠ³Π° ΡΠ΅ Π°ΠΊΡΠΈΠ²ΠΈΡΠ° Π½Π° ΡΠΈΡΡΠ΅ΠΌΠΈ ΡΠΎ IP Π°Π΄ΡΠ΅ΡΠΈ ΠΎΠ΄ Π ΡΡΠΈΡΠ° ΠΈΠ»ΠΈ ΠΠ΅Π»ΠΎΡΡΡΠΈΡΠ°. ΠΠ°ΠΊΠ΅ΡΠΎΡ node-ipc ΠΈΠΌΠ° ΠΎΠΊΠΎΠ»Ρ ΠΌΠΈΠ»ΠΈΠΎΠ½ ΠΏΡΠ΅Π·Π΅ΠΌΠ°ΡΠ° Π½Π΅Π΄Π΅Π»Π½ΠΎ ΠΈ ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ ΠΊΠ°ΠΊΠΎ Π·Π°Π²ΠΈΡΠ½ΠΎΡΡ ΠΎΠ΄ 354 ΠΏΠ°ΠΊΠ΅ΡΠΈ, Π²ΠΊΠ»ΡΡΡΠ²Π°ΡΡΠΈ Π³ΠΎ ΠΈ vue-cli. Π‘ΠΈΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠΈ ΠΊΠΎΠΈ ΠΈΠΌΠ°Π°Ρ node-ipc ΠΊΠ°ΠΊΠΎ Π·Π°Π²ΠΈΡΠ½ΠΎΡΡ ΡΠ΅ ΠΈΡΡΠΎ ΡΠ°ΠΊΠ° ΠΏΠΎΠ³ΠΎΠ΄Π΅Π½ΠΈ ΠΎΠ΄ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΡ.
ΠΠ»ΠΎΠ½Π°ΠΌΠ΅ΡΠ½ΠΈΠΎΡ ΠΊΠΎΠ΄ Π±Π΅ΡΠ΅ ΠΎΠ±ΡΠ°Π²Π΅Π½ Π²ΠΎ ΡΠΊΠ»Π°Π΄ΠΈΡΡΠ΅ΡΠΎ Π½Π° NPM ΠΊΠ°ΠΊΠΎ Π΄Π΅Π» ΠΎΠ΄ ΠΈΠ·Π΄Π°Π½ΠΈΡΠ°ΡΠ° Π½Π° node-ipc 10.1.1 ΠΈ 10.1.2. ΠΠ»ΠΎΠ½Π°ΠΌΠ΅ΡΠ½Π° ΠΏΡΠΎΠΌΠ΅Π½Π° Π±Π΅ΡΠ΅ ΠΎΠ±ΡΠ°Π²Π΅Π½Π° Π²ΠΎ ΡΠΊΠ»Π°Π΄ΠΈΡΡΠ΅ΡΠΎ Git Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠΎΡ Π²ΠΎ ΠΈΠΌΠ΅ Π½Π° Π°Π²ΡΠΎΡΠΎΡ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠΎΡ ΠΏΡΠ΅Π΄ 11 Π΄Π΅Π½Π°. ΠΠ΅ΠΌΡΠ°ΡΠ° Π±Π΅ΡΠ΅ ΠΎΠ΄ΡΠ΅Π΄Π΅Π½Π° Π²ΠΎ ΠΊΠΎΠ΄ΠΎΡ ΡΠΎ ΠΏΠΎΠ²ΠΈΠΊΡΠ²Π°ΡΠ΅ Π½Π° ΡΡΠ»ΡΠ³Π°ΡΠ° api.ipgeolocation.io. ΠΠ»ΡΡΠΎΡ Π΄ΠΎ ΠΊΠΎΡ Π±Π΅ΡΠ΅ ΠΏΡΠΈΡΡΠ°ΠΏΠ΅Π½ Π΄ΠΎ ipgeolocation.io API ΠΎΠ΄ Π·Π»ΠΎΠ½Π°ΠΌΠ΅ΡΠ½ΠΎΡΠΎ Π²Π³ΡΠ°Π΄ΡΠ²Π°ΡΠ΅ ΡΠ΅Π³Π° Π΅ ΠΎΡΠΏΠΎΠ²ΠΈΠΊΠ°Π½.
ΠΠΎ ΠΊΠΎΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ΅ Π½Π° ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅Π΄ΡΠ²Π°ΡΠ΅ΡΠΎ Π·Π° ΠΏΠΎΡΠ°Π²Π°ΡΠ° Π½Π° ΡΠΎΠΌΠ½ΠΈΡΠ΅Π»Π΅Π½ ΠΊΠΎΠ΄, Π°Π²ΡΠΎΡΠΎΡ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠΎΡ ΠΈΠ·ΡΠ°Π²ΠΈΠ» Π΄Π΅ΠΊΠ° ΠΏΡΠΎΠΌΠ΅Π½Π°ΡΠ° Π·Π½Π°ΡΠΈ Π΄ΠΎΠ΄Π°Π²Π°ΡΠ΅ Π΄Π°ΡΠΎΡΠ΅ΠΊΠ° Π½Π° ΡΠ°Π±ΠΎΡΠ½Π°ΡΠ° ΠΏΠΎΠ²ΡΡΠΈΠ½Π° ΠΊΠΎΡΠ° ΠΏΡΠΈΠΊΠ°ΠΆΡΠ²Π° ΠΏΠΎΡΠ°ΠΊΠ° ΠΊΠΎΡΠ° ΠΏΠΎΠ²ΠΈΠΊΡΠ²Π° Π½Π° ΠΌΠΈΡ. ΠΡΡΡΠ½ΠΎΡΡ, ΠΊΠΎΠ΄ΠΎΡ ΠΈΠ·Π²ΡΡΠΈ ΡΠ΅ΠΊΡΡΠ·ΠΈΠ²Π½ΠΎ ΠΏΡΠ΅Π±Π°ΡΡΠ²Π°ΡΠ΅ Π½Π° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΠΌΠΈ ΡΠΎ ΠΎΠ±ΠΈΠ΄ Π΄Π° Π³ΠΈ ΠΏΡΠ΅Π·Π°ΠΏΠΈΡΠ΅ ΡΠΈΡΠ΅ Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ ΡΡΠΎ ΡΠ΅ ΡΡΠ΅ΡΠ½Π°Π»Π΅.
ΠΠ·Π΄Π°Π½ΠΈΡΠ°ΡΠ° Π½Π° node-ipc 11.0.0 ΠΈ 11.1.0 ΠΏΠΎΠ΄ΠΎΡΠ½Π° Π±Π΅Π° ΠΎΠ±ΡΠ°Π²Π΅Π½ΠΈ Π²ΠΎ ΡΠΊΠ»Π°Π΄ΠΈΡΡΠ΅ΡΠΎ NPM, ΠΊΠΎΠ΅ Π³ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈ Π²Π³ΡΠ°Π΄Π΅Π½ΠΈΠΎΡ Π·Π»ΠΎΠ½Π°ΠΌΠ΅ΡΠ΅Π½ ΠΊΠΎΠ΄ ΡΠΎ Π½Π°Π΄Π²ΠΎΡΠ΅ΡΠ½Π° Π·Π°Π²ΠΈΡΠ½ΠΎΡΡ, βpeacenotwarβ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠ°Π½Π° ΠΎΠ΄ ΠΈΡΡΠΈΠΎΡ Π°Π²ΡΠΎΡ ΠΈ ΠΏΠΎΠ½ΡΠ΄Π΅Π½Π° Π·Π° Π²ΠΊΠ»ΡΡΡΠ²Π°ΡΠ΅ ΠΎΠ΄ ΠΎΠ΄ΡΠΆΡΠ²Π°ΡΠΈΡΠ΅ Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΈ ΠΊΠΎΠΈ ΡΠ°ΠΊΠ°Π°Ρ Π΄Π° ΡΠ΅ ΠΏΡΠΈΠΊΠ»ΡΡΠ°Ρ Π½Π° ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ. Π‘Π΅ Π½Π°Π²Π΅Π΄ΡΠ²Π° Π΄Π΅ΠΊΠ° ΠΏΠ°ΠΊΠ΅ΡΠΎΡ ΠΌΠΈΡΠ½ΠΎΠ²ΠΎΠ΅Π½ ΡΠ°ΠΌΠΎ ΠΏΡΠΈΠΊΠ°ΠΆΡΠ²Π° ΠΏΠΎΡΠ°ΠΊΠ° Π·Π° ΠΌΠΈΡ, Π½ΠΎ Π·Π΅ΠΌΠ°ΡΡΠΈ Π³ΠΈ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ Π²Π΅ΡΠ΅ ΠΏΡΠ΅Π·Π΅ΠΌΠ΅Π½ΠΈΡΠ΅ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ ΠΎΠ΄ Π°Π²ΡΠΎΡΠΎΡ, ΠΏΠΎΠ½Π°ΡΠ°ΠΌΠΎΡΠ½Π°ΡΠ° ΡΠΎΠ΄ΡΠΆΠΈΠ½Π° Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΎΡ Π΅ Π½Π΅ΠΏΡΠ΅Π΄Π²ΠΈΠ΄Π»ΠΈΠ²Π° ΠΈ ΠΎΡΡΡΡΡΠ²ΠΎΡΠΎ Π½Π° Π΄Π΅ΡΡΡΡΠΊΡΠΈΠ²Π½ΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π½Π΅ Π΅ Π·Π°Π³Π°ΡΠ°Π½ΡΠΈΡΠ°Π½ΠΎ.
ΠΠΎ ΠΈΡΡΠΎ Π²ΡΠ΅ΠΌΠ΅, Π±Π΅ΡΠ΅ ΠΎΠ±ΡΠ°Π²Π΅Π½ΠΎ Π°ΠΆΡΡΠΈΡΠ°ΡΠ΅ Π½Π° ΡΡΠ°Π±ΠΈΠ»Π½Π°ΡΠ° Π³ΡΠ°Π½ΠΊΠ° node-ipc 9.2.2, ΠΊΠΎΡΠ° ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ ΠΎΠ΄ ΠΏΡΠΎΠ΅ΠΊΡΠΎΡ Vue.js. ΠΠΎ Π½ΠΎΠ²ΠΎΡΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅, ΠΏΠΎΠΊΡΠ°Ρ ΠΌΠΈΡΠΎΡΠ²ΠΎΡΠ½Π°ΡΠ° Π²ΠΎΡΠ½Π°, Π½Π° ΡΠΏΠΈΡΠΎΠΊΠΎΡ Π½Π° Π·Π°Π²ΠΈΡΠ½ΠΎΡΡΠΈ Π±Π΅ΡΠ΅ Π΄ΠΎΠ΄Π°Π΄Π΅Π½ ΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΎΡ Π±ΠΎΠΈ, ΡΠΈΡ Π°Π²ΡΠΎΡ Π²ΠΎ ΡΠ°Π½ΡΠ°ΡΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ°ΡΠ΅ Π΄Π΅ΡΡΡΡΠΊΡΠΈΠ²Π½ΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π²ΠΎ ΠΊΠΎΠ΄ΠΎΡ. ΠΠ·Π²ΠΎΡΠ½Π°ΡΠ° Π»ΠΈΡΠ΅Π½ΡΠ° Π·Π° Π½ΠΎΠ²ΠΎΡΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Π΅ ΠΏΡΠΎΠΌΠ΅Π½Π΅ΡΠ° ΠΎΠ΄ MIT Π²ΠΎ DBAD.
ΠΠΈΠ΄Π΅ΡΡΠΈ ΠΏΠΎΠ½Π°ΡΠ°ΠΌΠΎΡΠ½ΠΈΡΠ΅ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ Π½Π° Π°Π²ΡΠΎΡΠΎΡ ΡΠ΅ Π½Π΅ΠΏΡΠ΅Π΄Π²ΠΈΠ΄Π»ΠΈΠ²ΠΈ, Π½Π° ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΈΡΠ΅ Π½Π° node-ipc ΠΈΠΌ ΡΠ΅ ΠΏΡΠ΅ΠΏΠΎΡΠ°ΡΡΠ²Π° Π΄Π° Π³ΠΈ ΠΏΠΎΠΏΡΠ°Π²Π°Ρ Π·Π°Π²ΠΈΡΠ½ΠΎΡΡΠΈΡΠ΅ ΠΎΠ΄ Π²Π΅ΡΠ·ΠΈΡΠ°ΡΠ° 9.2.1. ΠΡΡΠΎ ΡΠ°ΠΊΠ°, ΡΠ΅ ΠΏΡΠ΅ΠΏΠΎΡΠ°ΡΡΠ²Π° Π΄Π° ΡΠ΅ ΠΏΠΎΠΏΡΠ°Π²Π°Ρ Π²Π΅ΡΠ·ΠΈΠΈ Π·Π° Π΄ΡΡΠ³ΠΈ ΡΠ»ΡΡΡΠ²Π°ΡΠ° ΠΎΠ΄ ΠΈΡΡΠΈΠΎΡ Π°Π²ΡΠΎΡ ΠΊΠΎΡ ΠΎΠ΄ΡΠΆΡΠ²Π°Π» 41 ΠΏΠ°ΠΊΠ΅Ρ. ΠΠ΅ΠΊΠΎΠΈ ΠΎΠ΄ ΠΏΠ°ΠΊΠ΅ΡΠΈΡΠ΅ ΡΡΠΎ Π³ΠΈ ΠΎΠ΄ΡΠΆΡΠ²Π° ΠΈΡΡΠΈΠΎΡ Π°Π²ΡΠΎΡ (js-queue, easy-stack, js-message, event-pubsub) ΠΈΠΌΠ°Π°Ρ ΠΎΠΊΠΎΠ»Ρ ΠΌΠΈΠ»ΠΈΠΎΠ½ ΠΏΡΠ΅Π·Π΅ΠΌΠ°ΡΠ° Π½Π΅Π΄Π΅Π»Π½ΠΎ.
ΠΠΎΠΏΠΎΠ»Π½ΡΠ²Π°ΡΠ΅: ΠΠ°Π±Π΅Π»Π΅ΠΆΠ°Π½ΠΈ ΡΠ΅ ΠΈ Π΄ΡΡΠ³ΠΈ ΠΎΠ±ΠΈΠ΄ΠΈ Π·Π° Π΄ΠΎΠ΄Π°Π²Π°ΡΠ΅ Π΄Π΅ΡΡΡΠ²Π° Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΎΡΠ²ΠΎΡΠ΅Π½ΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΈ ΠΊΠΎΠΈ Π½Π΅ ΡΠ΅ ΠΏΠΎΠ²ΡΠ·Π°Π½ΠΈ ΡΠΎ Π΄ΠΈΡΠ΅ΠΊΡΠ½Π°ΡΠ° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈΡΠ΅ ΠΈ ΡΠ΅ ΠΏΠΎΠ²ΡΠ·Π°Π½ΠΈ ΡΠΎ IP Π°Π΄ΡΠ΅ΡΠΈ ΠΈΠ»ΠΈ ΡΠΈΡΡΠ΅ΠΌΡΠΊΠ° Π»ΠΎΠΊΠ°ΡΠΈΡΠ°. ΠΠ°ΡΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΈΡΠ΅ ΠΎΠ΄ ΠΎΠ²ΠΈΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ (es5-ext, rete, PHP ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΎΡ, PHPUnit, Redis Desktop Manager, Awesome Prometheus Alerts, verdaccio, filestash) ΡΠ΅ ΡΠ²Π΅Π΄ΡΠ²Π°Π°Ρ Π½Π° ΠΏΡΠΈΠΊΠ°ΠΆΡΠ²Π°ΡΠ΅ ΠΏΠΎΠ²ΠΈΡΠΈ Π·Π° ΡΡΠ°Π²Π°ΡΠ΅ ΠΊΡΠ°Ρ Π½Π° Π²ΠΎΡΠ½Π°ΡΠ° Π·Π° ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΈΡΠ΅ ΠΎΠ΄ Π ΡΡΠΈΡΠ° ΠΈ ΠΠ΅Π»ΠΎΡΡΡΠΈΡΠ°. ΠΠΎ ΠΈΡΡΠΎ Π²ΡΠ΅ΠΌΠ΅, ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΡΠ²Π°Π½ΠΈ ΡΠ΅ ΠΈ ΠΏΠΎΠΎΠΏΠ°ΡΠ½ΠΈ ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΠ°ΡΠΈΠΈ, Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ, Π΄ΠΎΠ΄Π°Π΄Π΅Π½ Π΅ Π΅Π½ΠΊΡΠΈΠΏΡΠΎΡ Π²ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠΈΡΠ΅ ΡΠΎ ΠΌΠΎΠ΄ΡΠ»ΠΈ AWS Terraform ΠΈ Π²ΠΎ Π»ΠΈΡΠ΅Π½ΡΠ°ΡΠ° Π±Π΅Π° Π²ΠΎΠ²Π΅Π΄Π΅Π½ΠΈ ΠΏΠΎΠ»ΠΈΡΠΈΡΠΊΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΡΠ²Π°ΡΠ°. Π€ΠΈΡΠΌΠ²Π΅ΡΠΎΡ Tasmota Π·Π° ΡΡΠ΅Π΄ΠΈΡΠ΅ ESP8266 ΠΈ ESP32 ΠΈΠΌΠ° Π²Π³ΡΠ°Π΄Π΅Π½ ΠΎΠ±Π΅Π»Π΅ΠΆΡΠ²Π°Ρ ΡΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ° Π±Π»ΠΎΠΊΠΈΡΠ° ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° ΡΡΠ΅Π΄ΠΈΡΠ΅. Π‘Π΅ Π²Π΅ΡΡΠ²Π° Π΄Π΅ΠΊΠ° ΡΠ°ΠΊΠ²Π°ΡΠ° Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡ ΠΌΠΎΠΆΠ΅ ΡΠ΅ΡΠΈΠΎΠ·Π½ΠΎ Π΄Π° ΡΠ° ΠΏΠΎΡΠΊΠΎΠΏΠ° Π΄ΠΎΠ²Π΅ΡΠ±Π°ΡΠ° Π²ΠΎ ΡΠΎΡΡΠ²Π΅ΡΠΎΡ ΡΠΎ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄.
ΠΠ·Π²ΠΎΡ: opennet.ru