ყველა სტატია

PHP2Shell: რატომ არ ეხება სტატიკურ ვებსაიტებს

გამოქვეყნდა · კითხვის დრო: 3 წთ

სტატიის მოსმენა · კითხულობს ხელოვნური ინტელექტის ხმა

2026 წლის 21 ოქტომბერს PHP-ის გუნდმა PHP-ის ბირთვში ორი კრიტიკული ხარვეზი აღმოფხვრა, რომლებიც PHP2Shell-ის სახელით გახდა ცნობილი. მათი საშუალებით თავდამსხმელს შეუძლია ავტორიზაციის გარეშე საკუთარი კოდი ვებსერვერზე გაუშვას – ყველგან, სადაც PHP ვებმოთხოვნებს პასუხობს, მაგალითად WordPress-ში, რომელსაც PHP სჭირდება.

რა არის PHP2Shell

ეს ორი მოწყვლადობაა თავად PHP-ში და არა რომელიმე დანამატში:

  • CVE-2026-109618: თუ მოთხოვნის დამუშავებისას PHP-ს მეხსიერება არ ეყოფა, მეხსიერების ნაწილი არასწორ მდგომარეობაში რჩება. სპეციალურად შედგენილ ფორმის მოთხოვნებს სწორედ ამის გამოწვევა შეუძლია.
  • CVE-2026-109619: PHP-ის პროცესი წინა მოთხოვნის მდგომარეობას ინახავს, თუმცა მისი მეხსიერება უკვე გათავისუფლებულია. მომდევნო მოთხოვნას შეუძლია ეს მდგომარეობა კოდის შესაღწევად გამოიყენოს.

PHP ორივე ხარვეზს CVSS 4.0-ით 10-დან 9,2 ქულით აფასებს. ვებსერვერის უფლებებით კოდის გაშვება დადასტურებულია Apache-სა და mod_php-ზე, მეორე ხარვეზის შემთხვევაში კი PHP-FPM-ზეც. აშშ-ის სააგენტო CISA 26 ოქტომბრიდან ორივეს აქტიურად გამოყენებულ მოწყვლადობებად აღრიცხავს.

რა უნდა გააკეთონ საიტების მფლობელებმა ახლა

  • განაახლეთ PHP 8.2.35, 8.3.36, 8.4.27 ან 8.5.12 ვერსიამდე – PHP-ის თანახმად, ეს ერთადერთი სრული დაცვაა – და შემდეგ ყველა PHP-პროცესი გადატვირთეთ.
  • PHP 8.1 და უფრო ძველი ვერსიები შესწორებას ვეღარ მიიღებს, რადგან ეს შტოები აღარ არის მხარდაჭერილი. გამოსავალი მხოლოდ მხარდაჭერილ შტოზე გადასვლაა.
  • თუ დღეს განახლება ვერ ხერხდება, PHP-ის შეტყობინებებში მოცემული დროებითი ზომები რისკს ამცირებს, მაგრამ არ აქრობს: session.upload_progress.enabled=0, PHP 8.5-ში დამატებით fatal_error_backtraces=0, ასევე memory_limit=-1 წინ მდგომ ვებსერვერზე მოთხოვნის ზომის მკაცრ შეზღუდვებთან ერთად.
  • საერთო ჰოსტინგზე განახლება პროვაიდერის საქმეა – დააზუსტეთ, PHP-ის რომელი ვერსია მუშაობს.

როგორ ვქმნით ვებსაიტებს

ჩვენი ვებსაიტები PHP-ს არ შეიცავს. მათ Astro-თი სტატიკურ საიტებად ვაგებთ: თითოეული გვერდი ერთხელ, აგებისას იქმნება მზა HTML-ფაილის სახით, ვებსერვერი კი – nginx, Traefik-ის უკან – მხოლოდ ფაილებს აწვდის. გვერდის გახსნისას სერვერზე საიტის არცერთი პროგრამა არ ეშვება, რომელიც მოთხოვნას დაამუშავებდა. PHP2Shell-ის მსგავს ხარვეზებს აქ შესატევი არაფერი აქვთ.

  • არც PHP, არც მონაცემთა ბაზა, არც ადმინისტრატორის შესვლა ვებსერვერზე: არაფერია, რითაც შიგთავსის გარედან შეცვლა იქნებოდა შესაძლებელი.
  • ფორმები მონაცემებს ჩვენს საკუთარ ფორმების სერვისს უგზავნის, რომელიც სპამს ALTCHA-ით, proof-of-work მეთოდით იგერიებს – cookie-ების და უცხოური CAPTCHA-პროვაიდერების გარეშე (როგორ მუშაობს). თავად ვებსაიტს ამისთვის სერვერული კოდი არ სჭირდება.
  • აგება და გამოქვეყნება GitLab-ში: ყოველი ცვლილება გადის ტიპების, SEO-ს და ბმულების შემოწმებას; ქვეყნდება მხოლოდ დაცული მთავარი შტო.
  • დამოკიდებულებებს კონვეიერი ყოველი ცვლილებისას და ყოველ კვირა ამოწმებს ცნობილ მოწყვლადობებსა და ლიცენზიებზე. გარდა ამისა, ყველა საიტს ყოველ კვირა თავიდან ვაგებთ.
  • უსაფრთხოების სათაურები: Content Security Policy სკრიპტებს მხოლოდ საკუთარი მისამართიდან და ჩვენი ორი სერვისიდან უშვებს – ვიზიტების სტატისტიკიდან და ფორმების სერვისიდან. HSTS preload-ით HTTPS-ს აიძულებს, და არცერთ სხვა საიტს ჩვენი გვერდების ჩაშენება არ შეუძლია.

სად სჭირდებათ მოვლა სტატიკურ ვებსაიტებსაც

სტატიკური არ ნიშნავს მოვლის გარეშეს: ვებსერვერს, reverse proxy-ს და ოპერაციულ სისტემას კვლავ სჭირდებათ უსაფრთხოების განახლებები, ისევე როგორც ფორმების სერვისს. მაგრამ ეს რამდენიმე მარტივად სამართავი კომპონენტია – PHP-ს, მონაცემთა ბაზის, თემისა და დანამატების ნაცვლად, რომელთაგან თითოეული შეიძლება თავდასხმის სამიზნე გახდეს.

სიამოვნებით შევქმნით თქვენს ვებსაიტსაც ასე.

წყაროები

  • PHP-ის უსაფრთხოების შეტყობინება CVE-2026-109618-ზე, 21.10.2026: GHSA-w8hw-w9fx-j79w – მიზეზი, CVSS 4.0: 9,2, შესწორებული ვერსიები, დროებითი ზომები
  • PHP-ის უსაფრთხოების შეტყობინება CVE-2026-109619-ზე, 21.10.2026: GHSA-6wmf-4rv5-p3rp – მიზეზი, CVSS 4.0: 9,2, შესწორებული ვერსიები, დროებითი ზომები
  • CISA, Known Exploited Vulnerabilities: ორივე CVE დაემატა 26.10.2026-ს – მონაცემები ოფიციალურ რეპოზიტორიაში cisagov/kev-data, 28.10.2026-ის მდგომარეობით
  • სახელი „PHP2Shell“: Help Net Security, 21.10.2026
  • PHP: მხარდაჭერილი ვერსიები – 29.10.2026-ისთვის შტოები 8.2-დან 8.5-მდე
  • WordPress: მოთხოვნები – რეკომენდებულია PHP 8.3 ან უფრო ახალი
  • Astro: On-demand rendering – გვერდები ნაგულისხმევად აგებისას სტატიკურ გვერდებად იქმნება
  • esn.ge-ის პასუხის სათაურები: საკუთარი მოთხოვნა 29.10.2026-ს (Content-Security-Policy, Strict-Transport-Security, X-Frame-Options: deny)

მზად ხართ შემდეგი ნაბიჯისთვის?

დასაწყებად უკეთესი დრო არასდროს ყოფილა. მოგვიყევით თქვენი პროექტის შესახებ.

დაგვიკავშირდით