Уязвимости Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ Pingora, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ Π²ΠΊΠ»ΠΈΠ½ΠΈΡ‚ΡŒΡΡ Π² сторонниС запросы

Компания Cloudflare объявила ΠΎΠ± устранСнии Ρ‚Ρ€Ρ‘Ρ… уязвимостСй Π²ΠΎ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ΅ Pingora, Π΄Π²ΡƒΠΌ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… присвоСн критичСский ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ опасности (9.3 ΠΈΠ· 10). Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Pingora написан Π½Π° языкС Rust ΠΈ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π·Π°Ρ‰ΠΈΡ‰Ρ‘Π½Π½Ρ‹Ρ… Π²Ρ‹ΡΠΎΠΊΠΎΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… сСтСвых сСрвисов. ΠŸΠΎΡΡ‚Ρ€ΠΎΠ΅Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Pingora прокси ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² сСти доставки ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π° Cloudflare ΠΈ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ 40 ΠΌΠ»Π½ запросов Π² сСкунду. Уязвимости устранСны Π² выпускС Pingora 0.8.0.

Π”Π²Π΅ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ опасныС уязвимости Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π°Ρ‚Π°ΠΊ класса Β«HTTP Request SmugglingΒ», ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΡ… ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ систСмы ограничСния доступа ΠΈ Π²ΠΊΠ»ΠΈΠ½ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π² содСрТимоС запросов Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… Π² Ρ‚ΠΎΠΌ ΠΆΠ΅ ΠΏΠΎΡ‚ΠΎΠΊΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ фронтэндом ΠΈ бэкСндом (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для подстановки врСдоносного JavaScript-ΠΊΠΎΠ΄Π° Π² сСанс Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ с сайтом). ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ выявлСны участником ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Bug Bounty, ΠΏΡ€Π΅Π΄ΡƒΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‰Π΅ΠΉ Π²Ρ‹ΠΏΠ»Π°Ρ‚Ρƒ вознаграТдСния Π·Π° ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ уязвимостСй.

Π’ схСмС с ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ΠΌ ΠΊ бэкСнду Ρ‡Π΅Ρ€Π΅Π· ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ прокси запросы ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΡƒΠ·Π΅Π», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ устанавливаСт Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ TCP-соСдинСниС с бэкСндом, ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡŽΡ‰ΠΈΠΌ Π½Π΅ΠΏΠΎΡΡ€Π΅Π΄ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ запросов. Π§Π΅Ρ€Π΅Π· Π΄Π°Π½Π½ΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ соСдинСниС ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ запросы Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ ΠΏΠΎ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ΅ ΠΎΠ΄ΠΈΠ½ Π·Π° Π΄Ρ€ΡƒΠ³ΠΈΠΌ с Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ срСдствами ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° HTTP. Атаки класса HTTP Request Smuggling Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ ΠΈΠ·-Π·Π° Ρ€Π°Π·Π½ΠΎΠΉ Ρ‚Ρ€Π°ΠΊΡ‚ΠΎΠ²ΠΊΠΈ HTTP-Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² ΠΈ спСцификаций ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° HTTP Π½Π° фронтэндах ΠΈ бэкСндах, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΠ³Π΄Π° фронтэнд ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ для опрСдСлСния Ρ€Π°Π·ΠΌΠ΅Ρ€Π° запроса HTTP-Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Β«Content-LengthΒ», Π° бэкСнд Β«Transfer-Encoding: chunkedΒ».

ΠŸΠ΅Ρ€Π²Π°Ρ ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ CVE-2026-2835 присутствуСт Π² ΠΊΠΎΠ΄Π΅ Ρ€Π°Π·Π±ΠΎΡ€Π° запросов HTTP/1.0 ΠΈ Π²Ρ‹Π·Π²Π°Π½Π° Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Β«Transfer-EncodingΒ» с нСсколькими значСниями, Π° Ρ‚Π°ΠΊΠΆΠ΅ использованиСм закрытия соСдинСния ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠ° ΠΊΠΎΠ½Ρ†Π° Ρ‚Π΅Π»Π° запроса (close-delimited). Pingora провСрял Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Β«Transfer-Encoding: chunkedΒ» ΠΈ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π» Π΄Π°Π½Π½Ρ‹ΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ, Ссли Π² Π½Ρ‘ΠΌ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π»ΠΎΡΡŒ нСсколько Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. Π’ этой ситуации Pingora Π½Π΅ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Π» Ρ€Π°Π·ΠΌΠ΅Ρ€ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ Β«Content-LengthΒ», Π° считал Ρ‚Π΅Π»ΠΎΠΌ запроса всС Π΄Π°Π½Π½Ρ‹Π΅, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ Π΄ΠΎ закрытия соСдинСния.

Π§Π΅Ρ€Π΅Π· ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ Β«Transfer-EncodingΒ» Π°Ρ‚Π°ΠΊΡƒΡ‰ΠΈΠΉ ΠΌΠΎΠ³ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ условия, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π° бэкСнд пСрСнаправлялся запрос, фактичСский Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π½Π΅ соотвСтствовал Ρ€Π°Π·ΠΌΠ΅Ρ€Ρƒ chunked-Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ, вычислСнному Π½Π° основС Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Β«Transfer-Encoding. Pingora пСрСнаправлял всС ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΊΠ°ΠΊ ΠΎΠ΄ΠΈΠ½ запрос, Π° бэкСнд, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Node.js, вычислял запрос Π½Π° основС Β«Transfer-Encoding: chunkedΒ» ΠΈ ΠΎΡΡ‚Π°Π²ΡˆΠΈΠΉΡΡ хвост ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π» ΠΊΠ°ΠΊ Π½Π°Ρ‡Π°Π»ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ запроса. GET / HTTP/1.0 Host: example.com Connection: keep-alive Transfer-Encoding: identity, chunked Content-Length: 29 0 GET /admin HTTP/1.1 X:

 Уязвимости Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ Pingora, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ Π²ΠΊΠ»ΠΈΠ½ΠΈΡ‚ΡŒΡΡ Π² сторонниС запросы

Вторая ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ CVE-2026-2833 Π²Ρ‹Π·Π²Π°Π½Π° Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ HTTP-Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Β«UpgradeΒ» Π² запросах HTTP/1.1. ΠŸΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ Π² запросС Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Β«UpgradeΒ» прокси сразу пробрасывал ΠΊ бэкСнду ΠΈ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ запроса, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π·Π° Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠΌ Β«UpgradeΒ», Π½Π΅ доТидаясь ΠΎΡ‚ бэкСнда ΠΎΡ‚Π²Π΅Ρ‚Π° с ΠΊΠΎΠ΄ΠΎΠΌ 101 (Switching Protocols). Из-Π·Π° этого синхронизация ΠΏΠΎΡ‚ΠΎΠΊΠ° ΠΌΠ΅ΠΆΠ΄Ρƒ прокси ΠΈ бэкСндом Π½Π°Ρ€ΡƒΡˆΠ°Π»Π°ΡΡŒ ΠΈ бэкСнд воспринимал ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹Π΅ послС Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Β«UpgradeΒ» Π΄Π°Π½Π½Ρ‹Π΅ ΠΊΠ°ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ запрос, ΠΈ отправлял Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния этого запроса Π² ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° ΠΏΡ€ΠΈΡˆΠ΅Π΄ΡˆΠΈΠΉ слСдом запрос Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. GET / HTTP/1.1 Host: example.com Upgrade: foo GET /admin HTTP/1.1 Host: example.com

 Уязвимости Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ Pingora, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ Π²ΠΊΠ»ΠΈΠ½ΠΈΡ‚ΡŒΡΡ Π² сторонниС запросы
 Уязвимости Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ Pingora, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ Π²ΠΊΠ»ΠΈΠ½ΠΈΡ‚ΡŒΡΡ Π² сторонниС запросы

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΏΡ€ΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ использовании Pingora Π² Ρ„ΠΎΡ€ΠΌΠ΅ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ прокси (ingress proxy), Ρ‚Ρ€Π°Π½ΡΠ»ΠΈΡ€ΡƒΡŽΡ‰Π΅Π³ΠΎ запросы ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΊ бэкСндам с использованиСм ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠ² HTTP/1.0 ΠΈΠ»ΠΈ HTTP/1.1. ΠŸΡ€ΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΠ°Ρ Π² сСти доставки ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π° Cloudflare конфигурация Pingora Π½Π΅ позволяла ΡΠΊΡΠΏΠ»ΡƒΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ уязвимости, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Pingora Π² CDN Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² Ρ€ΠΎΠ»ΠΈ ingress-прокси, пСрСнаправляСт запросы Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с использованиСм ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° HTTP/1.1, Π±Π»ΠΎΠΊΠΈΡ€ΡƒΠ΅Ρ‚ запросы с Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΌΠΈ значСниями Content-Length, пСрСнаправляСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Β«Transfer-Encoding: chunkedΒ» ΠΈ подставляСт Π² запросы с Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠΌ Β«Upgrade:Β» Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Β«Connection: closeΒ», Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ запросы Π² Ρ‚ΠΎΠΌ ΠΆΠ΅ соСдинСнии.

Π’Ρ€Π΅Ρ‚ΡŒΡ ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ CVE-2026-2836 (ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ опасности 8.4 ΠΈΠ· 10) ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΎΡ‚Ρ€Π°Π²Π»Π΅Π½ΠΈΡŽ кэша (cache poisoning) ΠΈΠ·-Π·Π° Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΊΠ»ΡŽΡ‡Π° размСщСния Π΄Π°Π½Π½Ρ‹Ρ… Π² кэшС (CacheKey) Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° основС ΠΏΡƒΡ‚ΠΈ ΠΈΠ· URI, игнорируя содСрТимоС Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Β«HostΒ». Подобная Π½Π΅Π΄ΠΎΡ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Ρ… ΠΊΠ»ΡŽΡ‡Π΅ΠΉ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ для ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Ρ… HTTP-ΠΏΡƒΡ‚Π΅ΠΉ ΠΊ Ρ€Π°Π·Π½Ρ‹ΠΌ хостам. Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для ΠΏΠΎΠ΄ΠΌΠ΅Π½Ρ‹ содСрТимого кэша ΠΏΡ€ΠΈ использовании Ρ€Π΅ΠΆΠΈΠΌΠ° ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ для Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… хостов. Π’ Pingora ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ являСтся ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ, Π½Π΅ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π½Π½ΠΎΠΉ для Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠΉ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ