უკან დაბრუნება

Nuxt Image-ის გაფრთხილება: აუთენტიფიკაციის გარეშე შეტევები ნაგულისხმევი /_ipx მარშრუტით
SiTech AI Team2 წთ. საკითხავი

Nuxt Image-ის გაფრთხილება: აუთენტიფიკაციის გარეშე შეტევები ნაგულისხმევი /_ipx მარშრუტით

GitHub-ის გაფრთხილება @nuxt/image-ის შესახებ ამბობს, რომ ნაგულისხმევი /_ipx სურათის მარშრუტი აუთენტიფიკაციის გარეშე მისაწვდომია და სპეციალურად შექმნილმა მრავალგვერდიანმა სურათმა შეიძლება სერვერის პროცესი ჩამოაგდოს ან პოტენციურად დააზიანოს.

@nuxt/image სერვერზე ნაგულისხმევად ქმნის /_ipx მარშრუტს და ipx-ით ემსახურება. GitHub-ის გაფრთხილებით, ipx-ს მრავალგვერდიანი სურათების დეკოდირებისას მთელი რიცხვის გადავსება აქვს (GHSA-qf89-6xm4-66wm): სპეციალურად შექმნილმა საწყისმა სურათმა შეიძლება მეხსიერება დააზიანოს. ერთი აუთენტიფიკაციის გარეშე მოთხოვნით თავდამსხმელს შეუძლია პროცესის ჩამოგდება, ხოლო დაზიანებამ შეიძლება იმ პროცესის უფლებებით დისტანციური კოდის შესრულება დაუშვას.

რომელ განლაგებებსა და ვერსიებს ეხება

პრობლემა ეხება განლაგებებს, სადაც საიტი სერვერად მუშაობს ნაგულისხმევი ipx პროვაიდერით: /_ipx კონფიგურაციის გარეშე რეგისტრირდება, თავდამსხმელის ბაიტები IPX-ის წყაროდ შეიძლება იქცეს და /_ipx აუთენტიფიკაციის გარეშე მისაწვდომია. სპეციალური მოდიფიკატორი არ სჭირდება; ერთი მოთხოვნაც კმარა. დაზარალებული @nuxt/image-ის ვერსიები: >= 2.0.0 და < 2.2.1, >= 1.0.0 და < 1.11.2, >= 0.6.0 და < 1.0.0. პლატფორმის სურათის პროვაიდერის განლაგებები არ არიან დაზარალებული, თუ image.ipx-იც არ არის კონფიგურირებული; edge/worker გარემოები (მაგალითად, Cloudflare Workers) და სტატიკური ბილდები მარშრუტს არ არეგისტრირებენ. მოხსენებულ რეპროდუქციაში პროცესი root-ად მუშაობდა სტანდარტულ კონტეინერში, ამიტომ საიდუმლოებები, წყაროს კოდი და ატვირთვები ხელმისაწვდომი იყო.

გამოსწორებული გამოშვებები

შესწორებულია @nuxt/image 2.2.1 და 1.11.2; საჭიროა ipx 4.1.0 და 2.1.2 შესაბამისად. მრავალგვერდიანი სურათის (TIFF, GIF, WebP, AVIF) დეკოდირებამდე ისინი მთლიან სიმაღლეს ამოწმებენ და ძალიან დიდს 400-ით უარყოფენ. 2.2.1 ნაგულისხმევად /_ipx-ს გავრცელებულ ვებ-ფორმატებზე ზღუდავს: თუ წყაროს აღმოჩენილი ფორმატი JPEG, PNG, WebP, GIF, SVG, AVIF ან HEIC არ არის, მას დეკოდირებამდე 403-ით უარყოფენ. სხვა ფორმატებისთვის დააყენეთ image.ipx.allowedInputFormats. არასანდო წყაროებისთვის ჩართეთ image.ipx.restrictDecoders, რომელიც ყველა სხვა ფორმატის დეკოდერს ბლოკავს და სერვერის პროცესში sharp-ის ყველა გამოყენებას ეხება. ეს პარამეტრები 1.x-ზე არ არის. Nuxt Image 0.x-ის მხარდაჭერა დასრულდა, შესწორება აღარ იქნება. ipx არასავალდებულო დამოკიდებულებაა: განახლების შემდეგ შეამოწმეთ, რომ გამოსწორებულ ვერსიაზე რეზოლვდება (მაგალითად, npm ls ipx), და თუ პროექტი მასზეცაა დამოკიდებული, პირდაპირ განაახლეთ.

დროებითი გადაწყვეტები და სიმძიმე

თუ ჯერ ვერ განაახლეთ, /_ipx-ზე დაარეგისტრირეთ საკუთარი სერვერის handler-ი, მაგალითად 404-ის დამაბრუნებელი; მოდული არსებულს ამოიცნობს და საკუთარს არ დააყენებს. თუ მარშრუტი არ გჭირდებათ, /_ipx/** დაბლოკეთ reverse proxy-ზე. არ დაუშვათ თავდამსხმელის ბაიტების IPX-ის წყაროდ ქცევა: ატვირთვები საჯარო ბილიკების გარეთ შეინახეთ და image.domains მხოლოდ თქვენს ჰოსტებზე შეზღუდეთ. გაფართოების ან Content-Type-ის შემოწმება არ კმარა, რადგან დეკოდერი შიგთავსით ირჩევა. allowedModifiers-ით შეზღუდვა არ ეხმარება: პრობლემა მოდიფიკატორის გარეშეც მისაწვდომია. სიმძიმე მაღალია, საერთო CVSS ქულა 8.1. CVSS v3: ქსელი, მაღალი სირთულე, პრივილეგიებისა და ინტერაქციის გარეშე, უცვლელი scope, მაღალი გავლენა C/I/A-ზე. CVE უცნობია. CWE-20, არასწორი შეყვანის ვალიდაცია. მადლობა @l8BL-ს მოხსენების, რეპროდუქციისა და კოორდინირებული გამჟღავნებისთვის. გამოქვეყნდა 2026 წლის 30 ოქტომბერს, ID: GHSA-p5vf-pjf5-ggj3.

წყაროები: GitHub Advisory · IPX Advisory · Cloudflare · GitHub

გააზიარე ციფრული გამოცდილება

SiTech

SiTech — AI-გაძლიერებული ვებ დეველოპმენტი

ვქმნით სწრაფ, თანამედროვე ვებსაიტებს და AI-ს ვაერთიანებთ ქართული ბიზნესებისთვის. გაქვთ პროექტი ან კითხვა? სიამოვნებით დაგეხმარებით.