Budibase — это платформа low-code с открытым исходным кодом. До версии 3.40.0 packages/backend-core/src/utils/outboundFetch.ts закреплял проверенный адрес через агент Node, но интеграция REST использовала getDispatcher из packages/backend-core/src/utils/fetch.ts, в результате чего undici игнорировал этот агент и снова разрешал имя хоста. Сборщик может использовать перепривязку DNS, чтобы пакеты /server/src/integrations/rest.ts подключались к внутреннему адресу после того, как общедоступный адрес прошел проверку, с полным доступом к ответу и произвольными методами REST.
Исправление добавляет поддержку createPinnedLookup в диспетчер undici и передает проверенный адрес в пользовательские реализации выборки. Эта проблема исправлена в версии 3.40.0.
Показать оригинальное описание (EN)
Budibase is an open-source low-code platform. Prior to 3.40.0, packages/backend-core/src/utils/outboundFetch.ts pinned a validated address through a Node agent, but the REST integration used getDispatcher from packages/backend-core/src/utils/fetch.ts, causing undici to ignore that agent and resolve the hostname again. A builder could use DNS rebinding to make packages/server/src/integrations/rest.ts connect to an internal address after a public address passed validation, with full response access and arbitrary REST methods. The fix adds createPinnedLookup support to the undici dispatcher and passes the validated address to custom fetch implementations. This issue is fixed in version 3.40.0.
Характеристики атаки
Последствия
Строка CVSS v3.1