There isn't an easy exploit for this PHP vulnerability 🔥 Горячее
Вокруг новой уязвимости в PHP раздули панику, но лёгкого эксплойта для неё не существует. Баг реальный и важный, однако он далеко не так прост в использовании, как Log4Shell, Heartbleed или декодирование YAML в Ruby on Rails. На GitHub уже тысячи «PoC», но ни один не работает против чистой установки PHP — автор призывает поднять сервер в Docker и запустить скрипт руками, а не через языковую модель: эксплойты просто не срабатывают.
Причина в том, что почти все поддельные «доказательства» опираются на локальное включение файлов (LFI) — по сути, требуют, чтобы сервер уже выполнял eval(read(файл_от_пользователя)). Это абсурдное предварительное условие: если для атаки нужна существующая уязвимость, позволяющая прочитать /etc/passwd, то баг не тянет на критический. Прошло уже больше десяти часов, на него смотрят полмира и сотни тысяч «сверхразумов», но рабочего эксплойта нет — в отличие от Log4Shell, где ботнеты появлялись мгновенно, ещё до эры ИИ.
Корень проблемы — слепая вера в LLM: люди, не понимающие цепочек use-after-free, уверены, что «Клод всё знает и сделает эксплойт». В итоге модель выдаёт младшему брату отключённый геймпад — на экране написано «эксплойт», есть убедительные логи, но сама модель заранее добавила серверу серьёзную уязвимость. Отсюда и странная одинаковость ошибок: ИИ стал главным «принимающим решения», порождая причудливые «точки Шеллинга» в решениях. Паника подогревалась заявлением члена команды PHP о «катастрофе», всеобщим недоверием к безопасности PHP, видео с аниме-девочкой и ощущением, что LLM нависают над интернетом. Но это не момент Log4J.
Комментарии (140)
Вопреки заявлениям об отсутствии простых эксплойтов, специалисты Trail of Bits за несколько часов создали два рабочих варианта, протестировав их на чистой установке MediaWiki. PHP-Security подтвердил наличие use-after-free и краха воркера, продемонстрировав RCE через PHP-FPM и mod_php. При этом большинство публичных PoC требуют доработки и часто зависят от LFI. В сообществе возник спор: одни считают уязвимость одной из самых серьезных за последние годы из-за широкого охвата, другие сомневаются в этом из-за сложности реализации. Многие отмечают разрыв между технической реальностью и медийным ажиотажем, указывая, что паника раздута за счет AI-рекомендаций, а не детального анализа.
AX – Google’s Open Agentic Orchestrator 🔥 Горячее 💬 Длинная дискуссия
AX — это декларативная платформа для запуска агентных задач в масштабе, построенная на Agent Substrate. Она изолирует задачи в sandbox-окружениях, управляет их жизненным циклом и позволяет запускать миллиарды одновременных агентов на одном кластере благодаря лёгким актёрам и плотному мультиплексированию ресурсов. Каждая задача описывается в YAML-файле (например, task.yaml), где указываются workspace (с Git-репозиториями или генеративным описанием окружения) и цель задачи. После применения конфигурации через ax apply система создаёт workspace и задачу, после чего можно отслеживать её статус, подключаться по SSH, выполнять команды, приостанавливать и возобновлять выполнение — всё с субсекундным временем восстановления из спящего режима.
AX специально разработан для агентных workloads, которые отличаются от микросервисов и batch-задач: они сохраняют состояние, делают вызовы к моделям и внешним инструментам, могут простаивать ожидая ответа и тратят ресурсы, если не управляются. Платформа решает эту проблему через четыре примитива: задачи, workspace, сетевые политики и модели, обеспечивая декларативное управление. Благодаря генеративным возможностям, окружение можно настроить просто описав его на английском (например, «Set up a Python 3 development environment»), после чего AX сам подготовит его. Это делает AX идеальным для исследователей и разработчиков: от интерактивного программирования и Jupyter-ноутбуков до масштабного обучения с подкреплением и оценки агентов в воспроизводимых песочницах. AX минимален, эргономичен и ориентирован на joyful workflow — чтобы фокус оставался на исследовании, а не на инфраструктуре.
Комментарии (242)
Обсуждение ставит под сомнение простоту AX: требуется полный кластер Kubernetes, контейнерный реестр и доступ к Agent Substrate API, что делает его менее доступным. AX дублирует возможности Kubernetes, создавая избыточный слой и заставляя писать сложные YAML без уникального функционала. Демонстрация показывает лишь паузу и возобновление задачи, не раскрывая реальных сценариев применения. Главная сложность в оркестрации агентов — определение их состояния и автоматическое реагирование, требующее надёжного мониторинга. У опытных пользователей уже есть аналогичные решения (Mastra, Clrk), предоставляющие контроль над сетью и изоляцию, снижающие необходимость в AX. Некоторые предпочитают аппаратную сегрегацию (мини‐ПК) для изоляции агентов. Название «Google’s AX» вводит в заблуждение — нет официальной поддержки Google или DeepMind. Пользователи недовольны объёмными YAML‐конфигами и предлагают более простые способы описания задач. Инструменты вроде Scion, LangGraph или kagent предлагают более зрелый и интегрируемый подход. Agent Substrate уже покрывает изоляцию, ресурсное планирование и сетевой контроль, делая эти функции базовыми для платформ агентов. Отсутствуют публичные бенчмарки и сравнения производительности, требуются эмпирические данные. Экосистема фрагментирована: каждый разрабатывает собственный фреймворк, что приводит к повторному изобретению решений.
Charts built for Chat 🔥 Горячее
dbt Charts — это открытый язык на YAML для создания интерактивных дашбордов, разработанный dbt Labs, чтобы соединить свободу кода с управляемостью BI-инструментов в эпоху ИИ-агентов. Он выносит визуализацию из традиционных BI-платформ в код, позволяя агентам генерировать дашборды через чат, сохраняя при этом аудитируемость, версионность и воспроизводимость в Git. SQL остаётся языком для определения данных (WHAT), а YAML описывает их представление (HOW), дополняясь Markdown для текста и Jinja для переменных и макросов — как в dbt.
Язык спроектирован как минимальный, но выразительный набор элементов: переменные для UI-фильтров, именованные запросы и декларативные описания графиков. Пример показывает, как одна переменная, один SQL-запрос и один блок графика формируют полноценный дашборд. Платформа поддерживает conversational analytics — агент с разрешенным только-чтением доступом к warehouse может строить, настраивать и сохранять дашборды через диалог, а затем пользователь может кликнуть, чтобы уточнить детали. Все изменения — будь то из чата, визуального редактора или кода — сохраняются в одном YAML-файле в репозитории, обеспечивая единый источник истины и устраняя необходимость в скрытых стеках данных.
dbt Charts распространяется под лицензией Apache 2.0, работает локально без аккаунта и интегрируется через uv tool install dbt-charts. Бета-версия доступна на GitHub, с документацией, хостингом и сообществом в Slack. Проект пре-1.0, но обратная совместимость обеспечивается миграцией при изменении грамматики. Цель — предоставить открытый слой визуализации, которого не хватало современному стеку данных, чтобы ИИ-агенты могли создавать не просто код, а управляемые, совместные и продуктивные аналитические артефакты.
Комментарии (89)
dbt Charts улучшает аудитируемость и воспроизводимость BI-визуализаций, делая их кодом в Git, что соответствует тренду «unbundling BI». Однако вызывает сомнения выбор YAML как основы DSL: он не поддерживает условные конструкции и привязку переменных, что усложняет шаблоны. Критики отмечают, что продукт не решает ключевые аспекты BI — управление доступом, семантические слои и интерактивность, а лишь отображает сырые SQL-запросы. Некоторые считают, что AI-агенты могут генерировать SVG/HTML-чарты без библиотек, что достаточно для 80% случаев, делая новый формат избыточным. Сравнивают с Malloy, Publisher, VACP, Flint-Chart, Observable Framework и Vega-Lite, где используются более гибкие подходы (Markdown/JS), а также с DaC от Bruin Data как потенциальным конкурентом. Утверждается, что YAML-спецификации напоминают дампы внутренних структур Superset и не предлагают настоящего стандарта. При этом dbt Charts полезен для быстрой генерации метрик в Slack/Teams и интеграции в инструменты генерации приложений, где требуется согласованность стилей. Предлагается использовать его как структурированный формат для внутренних отчётов.
MAML – A new configuration language
MAML — это минималистичный формат для данных, который сохраняет читаемость для человека и при этом остаётся простым для машинной обработки. Он сочетает лучшее из JSON, дополняя его комментариями, многострочными строками и необязательными запятыми и кавычками.
MAML уже реализован в нескольких языках, включая JavaScript, Python, Rust, C и PHP. Эти реализации находятся на разных стадиях разработки: от готовых к использованию до находящихся в активной разработке.
Проект полностью открыт, с кодом на GitHub, и распространяется по лицензии MIT, что позволяет свободно использовать, модифицировать и распространять его.
Комментарии (145)
- Обсуждение вновь подтвердило, что вместо улучшения JSON/YAML/TOML появляется всё больше новых конфиг-языков, но никто не решает их проблемы с синтаксисом, датами, комментариями и т.д.
- Участники обсуждения отмечают, что большинство этих новых языков не решают фундаментальные проблемы, такие как отсутствие типов данных, дат и комментариев в JSON.
- Некоторые комментаторы подчеркивают, что вместо того, чтобы изобретать новые языки, лучше бы улучшить существующие инструменты, такие как JSON5 или TOML.
- Другие участники поднимают вопрос, что если бы разработчики потратили усилия на улучшение существующих инструментов, вместо создания новых, это было бы более продуктивно.
YAML document from hell (2023)
YAML позиционируется как удобный для человека формат данных, но на деле оказывается чрезвычайно сложным и полным скрытых ловушек. Его спецификация занимает 10 глав с многоуровневой структурой, в отличие от лаконичного JSON, чья спецификация умещается в шести диаграммах и почти не менялась два десятилетия. YAML активно развивается: версия 1.2 существенно отличается от 1.1, что приводит к разному parsing одних и тех же документов в разных реализациях.
Пример документа с настройками сервера демонстрирует проблемы YAML: числа вида 22:22 могут интерпретироваться как sexagesimal (1342) в версии 1.1, но как строка в 1.2. Якоря (&) и алиасы (*) усложняют чтение, а теги (!) создают угрозу выполнения произвольного кода при загрузке ненадёжных данных. Известная «проблема Норвегии» (неожиданная интерпретация сокращений стран) подчёркивает, что попытки быть «дружелюбным» формат делают его непредсказуемым и опасным.
Комментарии (114)
- Критика YAML за его сложность, неоднозначность и множество подводных камней, таких как проблемы с автоматическим определением типов (например, "no" интерпретируется как
false). - Предложения использовать альтернативы: JSONC, TOML, HCL, Dhall, Jsonnet, CUE или всегда заключать строки в кавычки в YAML для избежания ошибок.
- Обсуждение отдельных проблемных особенностей YAML, таких как якоря/алиасы, сексегесимальные числа и необходимость в линтерах.
- Отмечается, что, несмотря на недостатки, YAML остается популярным из-за удобочитаемости и широкой распространенности.
- Упоминание, что спецификация YAML 1.2 (2009 г.) исправила некоторые проблемы, но многие issues остаются актуальными.
Dear GitHub: no YAML anchors, please
GitHub Actions добавили поддержку YAML-якорей, что автор считает серьёзной ошибкой. Якоря избыточны: ту же функциональность можно реализовать через встроенные механизмы вроде workflow-level env, которые прозрачнее и логичнее в архитектуре. Они вводят ненужную сложность, нарушая локальность — теперь элементы могут зависеть от частей конфигурации в совершенно другом месте файла, что усложняет чтение и анализ.
Кроме того, якоря усугубляют проблемы безопасности: инструментам сложнее анализировать workflows, так как нарушается соответствие между исходным YAML и объектной моделью. Это мешает точно отслеживать уязвимости, например утечки секретов. GitHub не реализовал ключи слияния (merge keys), единственный сценарий, где якоря могли бы быть оправданы, что делает их поддержку бессмысленной и вредной.
Комментарии (121)
- Внедрение YAML-якорей в GitHub Actions оценивается положительно для устранения дублирования в конфигурациях, но критикуется за использование нестандартного синтаксиса, усложняющего анализ.
- Высказываются предложения заменить YAML на полноценный язык программирования для определения пайплайнов, чтобы улучшить тестируемость, локальную разработку и избежать сложностей шаблонизации.
- Поднимаются проблемы безопасности из-за неявного распространения переменных окружения (включая секреты) при использовании якорей и слияния объектов, что противоречит принципу минимальных привилегий.
- Отмечается, что текущие ограничения GitHub Actions (например, отсутствие фильтрации путей для
workflow_call) вынуждают пользователей создавать костыльные решения или полагаться на сторонние инструменты. - Обсуждаются компромиссы между декларативным и императивным подходами: одни предпочитают чистый YAML для читаемости, другие генерируют его из кода для удобства поддержки сложных логик.
Modern CI is too complex and misdirected (2021) 💬 Длинная дискуссия
Современные CI-платформы стали мощнее, но и сложнее. GitHub Actions, GitLab и др. предлагают YAML-конфиги с шаблонами, условиями, секретами, кешем, артефактами, экосистемой actions — в итоге CI превращается в полноценную систему сборки.
Базовые примитивы (задачи, зависимости, шаги) не отличаются от Makefile-ов, а добавление распределённого запуска и кеша делает CI почти идентичным современным билд-системам вроде Bazel.
Сложность растёт:
- YAML становится языком программирования.
- Пользователи копируют чужие конфиги, не понимая, что происходит.
- Платформы закрываются на собственных экосистемах, создавая vendor lock-in.
Итог: вместо простого «удалённого запуска тестов» мы получили громоздкую систему, где границы между CI и build-системой стёрлись.
Комментарии (159)
- Участники сходятся во мнении, что современные CI-системы слишком сложны и слишком «далеко» от разработчика, превращаясь в гибрид билд-системы и платформы.
- Многие предлагают упрощение: локально-переносимые скрипты (Bash, Justfile, build.bash), контейнеры или минималистичные движки вроде builds.sr.ht, Drone OSS, Buildbot, Linci.
- Критика YAML-конфигураций и SaaS-зависимости: GitHub Actions «застрял», GitLab CI мощнее, но всё равно требует «платформы».
- Идея «CI должен быть просто расширением билд-системы» (Bazel, Nix, Dagger) звучит, но требует единого «Steve Jobs билд-систем», а не новых технологий.
- Итог: пока нет серебряной пули; кто хочет простоты — пишет ./build.sh и запускает где угодно, кто хочет мощности — мирится с уровнем сложности текущих CI.
MCP doesn't need tools, it needs code
CLI-инструменты часто зависят от платформы/версии, плохо документированы и ломаются при не-ASCII вводе. Агенты путаются в управлении состоянием (например, tmux-сессиями) и теряют контекст после мелкой ошибки. Каждый вызов ещё тормозит из-за предварительной проверки безопасности.
Композиция в CLI работает через bash: цепочки tmux send-keys, sleep, base64 и т.д. MCP сегодня так не умеет.
Выход — MCP-сервер с одним «убер-инструментом»: Python-интерпретатор, сохраняющий состояние между вызовами. Пример — pexpect-mcp: виртуальное окружение + pexpect, позволяющее скриптами управлять интерактивными CLI-программами. Вместо 30 отдельных MCP-функций достаточно одной, принимающей код.
Комментарии (110)
- Участники спорят, нужен ли MCP (Model Context Protocol): кто-то считает его лишним слоем, другие — полезным способом дать LLM структурированные инструменты.
- Критика: MCP ограничивает агента набором команд, не решает безопасность, дублирует OpenAPI и заставляет LLM учиться новому формату вместо bash/API.
- Альтернативы: прямое обращение к HTTP/CLI/WebSocket (UTCP), YAML-описание тулов (hooks_mcp), eval в песочнице (runjs, Bubblewrap).
- Практические проблемы: при 100+ тулов агент путается; приходится писать кучу обвязок вместо «просто вызвать API».
- Общий вывод: MCP пока выглядит сыро, требует лишних усилий и не даёт очевидных преимуществ перед строками/bash/API.