PT-2024-12890 · Undefined · Undefined

Published

2024-05-22

·

Updated

2024-05-22

·

CVE-2023-40415

None

No severity ratings or metrics are available. When they are, we'll update the corresponding info on the page.
ChatGPT помог заработать $28 000 на 0-day.
Базовый XXE-пейлоад выглядит как-то так
]>
&xxe;
Можно залить файл с таким содержимым на сервер и, если у либы, которая его распарсит, включена поддержка внешних сущностей, на выходе мы получим содержимое /etc/passwd.
Это касается библиотек, но не браузеров. Если вы откроете нечто подобное у себя в Chrome, то ничего не сработает, т.к. в нем external entities отключены по дефолту.
Но выяснился забавный факт.
Помимо XML, современные браузеры поддерживают еще много форматов, например, XSL. Это старая спека, которая является надстройкой над XML со своими директивами.
О нем и о том, что там тоже можно объявлять внешние сущности, почему-то все забыли, но напомнил ChatGPT. Он подсказал, что это можно делать с помощью директивы, вроде <xsl:copy-of select="document('file:///etc/passwd')"/> которая подгрузит содержимое, вопреки всем запретам.
Поэтому полная цепочка выглядит так:
  1. Создаем XSL пейлоад с функцией document()
  2. Импортируем полученное содержимое как внешнюю сущность в XML
  3. Готовый XML-пейлоад вставляем в SVG-картинку и используем по назначению ;)
💰 Выплаты Apple (CVE-2023-40415): $25 000 Google (CVE-2023-4357): $3 000

Related Identifiers

CVE-2023-40415

Affected Products

Undefined