A client can make your app open any file the PHP process can read, such as .env. The Serializer's DataUriNormalizer accepted data URIs whose scheme wasn't all lowercase, and PHP then opened them as local file paths instead of as data.

Who is affected

Apps that deserialize client data with symfony/serializer (also part of symfony/symfony) into a property typed \SplFileObject, \SplFileInfo or Symfony\Component\HttpFoundation\File\File. FrameworkBundle registers DataUriNormalizer by default. On 6.4 and later, that includes #[MapRequestPayload] DTOs with such a property.

For \SplFileInfo and File, the file is read once your code calls openFile() or getContent(). Apps that never deserialize client data into these types aren't exposed. See the Symfony advisory.

What to do

Update to 5.4.56, 6.4.50, 7.4.23 or 8.1.11. If you're on 8.0, update to 8.1.11. The fix lowercases the scheme before opening the URI, so these values are always read as data.

The same release fixes CVE-2026-118515, which covers properties typed UploadedFile and other subclasses of these classes.

Reported and fixed by Nicolas Grekas.