CVE-2026-118515
>_ Opis
Tłumaczenie automatyczne – może zawierać nieścisłości.
Komponent Symfony Serializer DataUriNormalizer obsługuje tylko dokładne typy SplFileInfo, SplFileObject i File, więc w przypadku właściwości wpisanej z podklasą, taką jak UploadedFile, ObjectNormalizer tworzy instancję obiektu za pośrednictwem swojego konstruktora na podstawie danych kontrolowanych przez atakującego, w tym ścieżki pliku. Pozwala to na traktowanie dowolnego pliku na serwerze jako pliku przesłanego w wersjach Symfony wcześniejszych niż 5.4.56, 6.x wcześniejszych niż 6.4.50, 7.x wcześniejszych niż 7.4.23 i 8.x wcześniejszych niż 8.1.11.
Treść żądania, taka jak {"image": {"path": "/path/to/project/.env.local", "originalName": "a.png", "test": true}} sprawia, że aplikacja obsługuje dowolny plik na serwerze jako przesyłany, bez wysyłania pliku. W przypadku testu: true funkcja UploadedFile::isValid() pomija funkcję is_uploaded_file(), a move() powraca do rename(). Assert\File nie zapobiega temu, ponieważ sprawdza poprawność pliku w wybranej przez atakującego ścieżce, która istnieje na serwerze.
Ma to wpływ na każdy kod, który deserializuje niezaufane dane do typu przechowującego taką właściwość. Obejmuje to #[MapRequestPayload] w DTO z właściwością UploadedFile, czyli w jaki sposób przesyłane dane są mapowane w Symfony 8.1; wystarczy jedno nieuwierzytelnione żądanie z treścią JSON lub formularza. W zależności od tego, co aplikacja robi z przesyłaniem, może to ujawnić dowolny plik możliwy do odczytania przez PHP (na przykład podczas przechowywania i przesłania przesłanych plików), przenieść taki plik po wywołaniu funkcji move() i ujawnić, czy istnieje ścieżka.
Serializator zbudowany bez DataUriNormalizer przed normalizatorem obiektów nie jest chroniony przez poprawkę. serializator skonfigurowany przez FrameworkBundle jest.
>_ Słabości (CWE)
>_ Referencje
Dane podatności pochodzą z oficjalnych źródeł (CVE® List / NVD). Opisy po polsku są tłumaczone automatycznie i mogą zawierać nieścisłości – na stronie rekordu można wyświetlić wersję angielską.
This product uses the NVD API but is not endorsed or certified by the NVD.
Copyright © 1999–2026, The MITRE Corporation. CVE is a registered trademark and the CVE logo is a registered trademark of The MITRE Corporation.
CVE Usage: MITRE hereby grants you a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute Common Vulnerabilities and Exposures (CVE®). Any copy you make for such purposes is authorized provided that you reproduce MITRE's copyright designation and this license in any such copy. ALL DOCUMENTS AND THE INFORMATION CONTAINED THEREIN PROVIDED BY MITRE ARE PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND.
NVD Terms of Use / CVE® Terms of Use / nvd.nist.gov / cve.org