ΠΠ΅ΡΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΠ°Π½Π° Π·Π»ΠΎΠ½Π°ΠΌΠ΅ΡΠ΅Π½Π° ΠΏΡΠΎΠΌΡΠ½Π° Π² ΠΏΠ°ΠΊΠ΅ΡΠ° 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. ΠΠ»ΡΡΡΡ, Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΠΎΡ API Π½Π° ipgeolocation.io ΠΎΡ Π·Π»ΠΎΠ½Π°ΠΌΠ΅ΡΠ΅Π½ΠΎ Π²ΠΌΡΠΊΠ²Π°Π½Π΅, Π²Π΅ΡΠ΅ Π΅ ΠΎΡΠΌΠ΅Π½Π΅Π½.
Π ΠΊΠΎΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ΅ ΠΊΡΠΌ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ΡΠΎ Π·Π° ΠΏΠΎΡΠ²Π°ΡΠ° Π½Π° ΡΡΠΌΠ½ΠΈΡΠ΅Π»Π΅Π½ ΠΊΠΎΠ΄ Π°Π²ΡΠΎΡΡΡ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° Π·Π°ΡΠ²ΠΈ, ΡΠ΅ ΠΏΡΠΎΠΌΡΠ½Π°ΡΠ° ΡΠ΅ ΡΠ²Π΅ΠΆΠ΄Π° Π΄ΠΎ Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ Π½Π° ΡΠ°ΠΉΠ» ΠΊΡΠΌ ΡΠ°Π±ΠΎΡΠ½ΠΈΡ ΠΏΠ»ΠΎΡ, ΠΊΠΎΠΉΡΠΎ ΠΏΠΎΠΊΠ°Π·Π²Π° ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, ΠΏΡΠΈΠ·ΠΎΠ²Π°Π²Π°ΡΠΎ Π·Π° ΠΌΠΈΡ. ΠΡΡΡΠ½ΠΎΡΡ ΠΊΠΎΠ΄ΡΡ ΠΈΠ·Π²ΡΡΡΠΈ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎ ΠΈΠ·Π±ΡΠΎΡΠ²Π°Π½Π΅ Π½Π° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ Ρ ΠΎΠΏΠΈΡ Π΄Π° ΠΏΡΠ΅Π·Π°ΠΏΠΈΡΠ΅ Π²ΡΠΈΡΠΊΠΈ ΡΡΠ΅ΡΠ½Π°ΡΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅.
ΠΠΎ-ΠΊΡΡΠ½ΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΡΡΠ° node-ipc 11.0.0 ΠΈ 11.1.0 Π±ΡΡ Π° ΠΏΠΎΡΡΠ°Π²Π΅Π½ΠΈ Π² Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ Π½Π° NPM, ΠΊΠΎΠ΅ΡΠΎ Π²ΠΌΠ΅ΡΡΠΎ Π²Π³ΡΠ°Π΄Π΅Π½ΠΈΡ Π·Π»ΠΎΠ²ΡΠ΅Π΄Π΅Π½ ΠΊΠΎΠ΄ Π΄ΠΎΠ±Π°Π²ΠΈ Π²ΡΠ½ΡΠ½Π°ΡΠ° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ "peacenotwar", ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠ°Π½Π° ΠΎΡ ΡΡΡΠΈΡ Π°Π²ΡΠΎΡ ΠΈ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π½Π° Π·Π° Π²ΠΊΠ»ΡΡΠ²Π°Π½Π΅ ΡΡΠ΅Π· ΠΏΠ°ΠΊΠ΅Ρ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°ΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΆΠ΅Π»Π°ΡΡ Π΄Π° ΡΠ΅ Π²ΠΊΠ»ΡΡΠ°Ρ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ°. ΠΠΎΡΠΎΡΠ΅Π½ΠΎ Π΅, ΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΡΡ peacenotwar ΠΏΠΎΠΊΠ°Π·Π²Π° ΡΠ°ΠΌΠΎ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π·Π° ΡΠ²Π΅ΡΠ°, Π½ΠΎ ΠΊΠ°ΡΠΎ ΡΠ΅ Π²Π·Π΅ΠΌΠ°Ρ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΡΠ°, ΠΊΠΎΠΈΡΠΎ Π²Π΅ΡΠ΅ ΡΠ° ΠΏΡΠ΅Π΄ΠΏΡΠΈΠ΅ΡΠΈ ΠΎΡ Π°Π²ΡΠΎΡΠ°, ΠΏΠΎ-Π½Π°ΡΠ°ΡΡΡΠ½ΠΎΡΠΎ ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠ° Π΅ Π½Π΅ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΠΎ ΠΈ Π»ΠΈΠΏΡΠ°ΡΠ° Π½Π° ΡΠ°Π·ΡΡΡΠΈΡΠ΅Π»Π½ΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π½Π΅ Π΅ Π³Π°ΡΠ°Π½ΡΠΈΡΠ°Π½Π°.
Π£ΡΠΏΠΎΡΠ΅Π΄Π½ΠΎ Ρ ΡΠΎΠ²Π° Π±Π΅ΡΠ΅ ΠΏΡΡΠ½Π°ΡΠ° Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΡΡΠ°Π±ΠΈΠ»Π½ΠΈΡ ΠΊΠ»ΠΎΠ½ node-ipc 9.2.2, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° Vue.js. Π Π½ΠΎΠ²ΠΎΡΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅, Π² Π΄ΠΎΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΡΠΌ peacenotwar, ΠΊΡΠΌ Π±ΡΠΎΡ Π½Π° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈΡΠ΅ Π±Π΅ΡΠ΅ Π΄ΠΎΠ±Π°Π²Π΅Π½ ΠΈ ΠΏΠ°ΠΊΠ΅ΡΡΡ ΡΠ²Π΅ΡΠΎΠ²Π΅, ΡΠΈΠΉΡΠΎ Π°Π²ΡΠΎΡ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ° ΡΠ°Π·ΡΡΡΠΈΡΠ΅Π»Π½ΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π² ΠΊΠΎΠ΄Π° ΠΏΡΠ΅Π· ΡΠ½ΡΠ°ΡΠΈ. ΠΠΈΡΠ΅Π½Π·ΡΡ Π·Π° ΠΈΠ·ΡΠΎΡΠ½ΠΈΠΊ Π² Π½ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ Π΅ ΠΏΡΠΎΠΌΠ΅Π½Π΅Π½ ΠΎΡ MIT Π½Π° DBAD.
Π’ΡΠΉ ΠΊΠ°ΡΠΎ ΡΠ»Π΅Π΄Π²Π°ΡΠΈΡΠ΅ ΡΡΡΠΏΠΊΠΈ Π½Π° Π°Π²ΡΠΎΡΠ° ΡΠ° Π½Π΅ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ΠΈΠΌΠΈ, ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅ Π½Π° node-ipc ΡΠ΅ ΡΡΠ²Π΅ΡΠ²Π°Ρ Π΄Π° ΠΊΠΎΡΠΈΠ³ΠΈΡΠ°Ρ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈΡΠ΅ ΠΎΡ Π²Π΅ΡΡΠΈΡ 9.2.1. ΠΠ°ΠΊΠ»ΡΡΠ²Π°ΡΠΈΡΠ΅ Π²Π΅ΡΡΠΈΠΈ ΡΠ΅ ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ²Π°Ρ ΠΈ Π·Π° Π΄ΡΡΠ³ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΎΡ ΡΡΡΠΈΡ Π°Π²ΡΠΎΡ, ΠΊΠΎΠΉΡΠΎ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° 41 ΠΏΠ°ΠΊΠ΅ΡΠ°. ΠΡΠΊΠΎΠΈ ΠΎΡ ΠΏΠ°ΠΊΠ΅ΡΠΈΡΠ΅, ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Π½ΠΈ ΠΎΡ ΡΡΡΠΈΡ Π°Π²ΡΠΎΡ (js-queue, easy-stack, js-message, event-pubsub) ΠΈΠΌΠ°Ρ ΠΎΠΊΠΎΠ»ΠΎ ΠΌΠΈΠ»ΠΈΠΎΠ½ ΠΈΠ·ΡΠ΅Π³Π»ΡΠ½ΠΈΡ Π½Π° ΡΠ΅Π΄ΠΌΠΈΡΠ°.
ΠΠΎΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅: ΠΠ°ΠΏΠΈΡΠ²Π°Ρ ΡΠ΅ ΠΈ Π΄ΡΡΠ³ΠΈ ΠΎΠΏΠΈΡΠΈ Π·Π° Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ Π½Π° Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΊΡΠΌ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΎΡΠ²ΠΎΡΠ΅Π½ΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΈ, ΠΊΠΎΠΈΡΠΎ Π½Π΅ ΡΠ° ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ ΠΏΡΡΠΊΠ°ΡΠ° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡΠ° ΠΈ ΡΠ° ΠΎΠ±Π²ΡΡΠ·Π°Π½ΠΈ Ρ IP Π°Π΄ΡΠ΅ΡΠΈ ΠΈΠ»ΠΈ Π»ΠΎΠΊΠ°Π» Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ°. ΠΠ°ΠΉ-Π±Π΅Π·ΠΎΠ±ΠΈΠ΄Π½ΠΈΡΠ΅ ΠΎΡ ΡΠ΅Π·ΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ (es5-ext, rete, PHP composer, PHPUnit, Redis Desktop Manager, Awesome Prometheus Alerts, verdaccio, filestash) ΡΠ΅ ΡΠ²Π΅ΠΆΠ΄Π°Ρ Π΄ΠΎ ΠΏΡΠ΅ΠΊΡΠ°ΡΡΠ²Π°Π½Π΅ Π½Π° Π²ΠΎΠΉΠ½Π°ΡΠ° Π·Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅ Π² Π ΡΡΠΈΡ ΠΈ ΠΠ΅Π»Π°ΡΡΡ. Π ΡΡΡΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ ΡΠ΅ ΡΠ°Π·ΠΊΡΠΈΠ²Π°Ρ ΠΈ ΠΏΠΎ-ΠΎΠΏΠ°ΡΠ½ΠΈ ΠΏΡΠΎΡΠ²ΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΡΠΌ ΠΏΠ°ΠΊΠ΅ΡΠΈΡΠ΅ Ρ ΠΌΠΎΠ΄ΡΠ»ΠΈ AWS Terraform Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½ ΡΠΈΡΡΠ°ΡΠΎΡ ΠΈ Π² Π»ΠΈΡΠ΅Π½Π·Π° ΡΠ° Π²ΡΠ²Π΅Π΄Π΅Π½ΠΈ ΠΏΠΎΠ»ΠΈΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ. Π€ΡΡΠΌΡΠ΅ΡΡΡ Tasmota Π·Π° ΡΡΡΡΠΎΠΉΡΡΠ²Π° ESP8266 ΠΈ ESP32 ΠΈΠΌΠ° Π²Π³ΡΠ°Π΄Π΅Π½ ΡΠ°Π·Π΄Π΅Π», ΠΊΠΎΠΉΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±Π»ΠΎΠΊΠΈΡΠ° ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΡΠ°. ΠΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π° ΡΠ΅, ΡΠ΅ ΠΏΠΎΠ΄ΠΎΠ±Π½Π° Π΄Π΅ΠΉΠ½ΠΎΡΡ ΠΌΠΎΠΆΠ΅ ΡΠ΅ΡΠΈΠΎΠ·Π½ΠΎ Π΄Π° ΠΏΠΎΠ΄ΠΊΠΎΠΏΠ°Π΅ Π΄ΠΎΠ²Π΅ΡΠΈΠ΅ΡΠΎ Π² ΡΠΎΡΡΡΠ΅ΡΠ° Ρ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru