Слабое звено Azure: пять полных кросс-тенантных взломов
Исследователь Binary Security нашёл уязвимости в API Connections внутри Azure Logic Apps. Они дают полный доступ к чужому бэкенду и принесли исследователю 200 000 долларов.
ARM-запрос идёт в общий API Management с правами на все подключения. Поэтому чужой токен можно применить к Key Vault, Azure SQL или Jira.
Первый фикс закрыл path traversal, но не архитектурный доступ к чужим токенам. Минимизируй права токенов у своих Azure API Connections.
🔗 Подробнее
@nuancesprog #Security
Исследователь Binary Security нашёл уязвимости в API Connections внутри Azure Logic Apps. Они дают полный доступ к чужому бэкенду и принесли исследователю 200 000 долларов.
ARM-запрос идёт в общий API Management с правами на все подключения. Поэтому чужой токен можно применить к Key Vault, Azure SQL или Jira.
Первый фикс закрыл path traversal, но не архитектурный доступ к чужим токенам. Минимизируй права токенов у своих Azure API Connections.
🔗 Подробнее
@nuancesprog #Security
👍3
H.264 Is Magic
H.264 — стандарт видеокодека для интернет-видео, Blu-ray, телефонов, дронов и камер.
Несжатое видео 1080p при 60 кадрах в секунду занимает примерно 370 МБ/с.
Автор сравнил PNG-скриншот и H.264-видео одной и той же страницы.
Скриншот весит 1015 КБ, а пять секунд видео с 300 кадрами — 175 КБ.
H.264 сжимает с потерями: он выбрасывает малозаметные детали изображения.
У MacBook Pro пропадают отверстия решёток динамиков, а кадр весит 7% исходника.
🔗 Подробнее
@nuancesprog #Data
H.264 — стандарт видеокодека для интернет-видео, Blu-ray, телефонов, дронов и камер.
Несжатое видео 1080p при 60 кадрах в секунду занимает примерно 370 МБ/с.
Автор сравнил PNG-скриншот и H.264-видео одной и той же страницы.
Скриншот весит 1015 КБ, а пять секунд видео с 300 кадрами — 175 КБ.
H.264 сжимает с потерями: он выбрасывает малозаметные детали изображения.
У MacBook Pro пропадают отверстия решёток динамиков, а кадр весит 7% исходника.
🔗 Подробнее
@nuancesprog #Data
👍2
Решение проблемы COUNT в Postgres
ParadeDB ускорила COUNT-запросы поиска в два раза. Пропускная способность выросла с 2645.8 до 5353.3 QPS.
Проверка видимости строк занимала 81% всех чтений страниц. Сегментная партиция по ctid сократила эти чтения с 1382 до 30.
Второй шаг — инвертировать карту DocId → ctid. Старый маппинг требовал n чтений ctid для n совпадений.
🔗 Подробнее
@nuancesprog #Data #Postgres
ParadeDB ускорила COUNT-запросы поиска в два раза. Пропускная способность выросла с 2645.8 до 5353.3 QPS.
Проверка видимости строк занимала 81% всех чтений страниц. Сегментная партиция по ctid сократила эти чтения с 1382 до 30.
Второй шаг — инвертировать карту DocId → ctid. Старый маппинг требовал n чтений ctid для n совпадений.
🔗 Подробнее
@nuancesprog #Data #Postgres
👍3
arm64e: как устроена подпись указателей PAC
Apple на arm64e подписывает указатели, которые может подменить атакующий.
Процессор проверяет подпись в момент перехода, а ключ недоступен через память.
Подпись хранится в неиспользуемых старших битах указателя.
На этом Mac под неё отведено 16 бит, а на A12 для ядра — 24.
Слабое место — указатели на функции в C: стандарт требует побайтового копирования.
Поэтому их подписывают одинаково, и любой годится вместо любого другого.
🔗 Подробнее
@nuancesprog #Security #C
Apple на arm64e подписывает указатели, которые может подменить атакующий.
Процессор проверяет подпись в момент перехода, а ключ недоступен через память.
Подпись хранится в неиспользуемых старших битах указателя.
На этом Mac под неё отведено 16 бит, а на A12 для ядра — 24.
Слабое место — указатели на функции в C: стандарт требует побайтового копирования.
Поэтому их подписывают одинаково, и любой годится вместо любого другого.
🔗 Подробнее
@nuancesprog #Security #C
👍5
Почему после 6 лет я разочаровался в GraphQL
Автор шесть лет использовал GraphQL в проде и больше не рекомендует его большинству. Безопасность и производительность перевесили удобство запросов.
GraphQL увеличивает поверхность атаки: авторизацию надо проверять на каждом поле. Он отправил 128-байтный запрос без логина и получил 500 за 10 секунд.
Он советует ограничивать глубину и считать стоимость запросов. Но оценка сложности ошибается на циклических связях в данных.
🔗 Подробнее
@nuancesprog #Security
Автор шесть лет использовал GraphQL в проде и больше не рекомендует его большинству. Безопасность и производительность перевесили удобство запросов.
GraphQL увеличивает поверхность атаки: авторизацию надо проверять на каждом поле. Он отправил 128-байтный запрос без логина и получил 500 за 10 секунд.
Он советует ограничивать глубину и считать стоимость запросов. Но оценка сложности ошибается на циклических связях в данных.
🔗 Подробнее
@nuancesprog #Security
👍4
Инженерия для медленного интернета
Автор блога brr.fyi 14 месяцев работал в Антарктиде.
Интернет там шёл через ограниченные спутниковые каналы американской антарктической программы.
Станция Мак-Мердо делила несколько десятков мегабит на почти тысячу человек.
На Южном полюсе связь была лишь несколько часов в день, пинг около 750 мс.
NSF анонсировала Starlink в Мак-Мердо и Палмере, но не на полюсе.
Проектируй под прерывистую связь и высокую задержку, не жди стабильного канала.
🔗 Подробнее
@nuancesprog #Infrastructure
Автор блога brr.fyi 14 месяцев работал в Антарктиде.
Интернет там шёл через ограниченные спутниковые каналы американской антарктической программы.
Станция Мак-Мердо делила несколько десятков мегабит на почти тысячу человек.
На Южном полюсе связь была лишь несколько часов в день, пинг около 750 мс.
NSF анонсировала Starlink в Мак-Мердо и Палмере, но не на полюсе.
Проектируй под прерывистую связь и высокую задержку, не жди стабильного канала.
🔗 Подробнее
@nuancesprog #Infrastructure
👍4
Unslop: навык Claude против «вайбкоднутого» дизайна
Unslop — это навык для Claude, который находит и убирает признаки AI-дизайна. Он ловит фиолетовые градиенты, свечения, эмодзи-подписи и неровные отступы.
Он работает с React, Vue, Svelte, Tailwind и чистым HTML. Сначала он показывает аудит и направление, поэтому правки можно направить заранее.
Установи навык в ~/.claude/skills и вызови /unslop для дашборда или ссылки. Лицензия CC BY 4.0 разрешает коммерческое использование, но требует указать автора.
🔗 Подробнее
@nuancesprog #AI
Unslop — это навык для Claude, который находит и убирает признаки AI-дизайна. Он ловит фиолетовые градиенты, свечения, эмодзи-подписи и неровные отступы.
Он работает с React, Vue, Svelte, Tailwind и чистым HTML. Сначала он показывает аудит и направление, поэтому правки можно направить заранее.
Установи навык в ~/.claude/skills и вызови /unslop для дашборда или ссылки. Лицензия CC BY 4.0 разрешает коммерческое использование, но требует указать автора.
🔗 Подробнее
@nuancesprog #AI
👍5
Многопоточный libuv, но не совсем
Разработчик protty поделился заметками о проектировании многопоточного цикла событий на Zig. Он хотел сделать рантайм в духе Go или Tokio, но без аллокаций в куче.
Он напоминает, что модель «поток на ядро» часто выигрывает по пропускной способности и хвостовой задержке. Но распределять задачи по ядрам без воровства задач сложно, и не всегда это оправдано.
Готового кода нет: автор решил, что идея пока поживёт в голове. Среди выводов: не усложняй park/unpark и выбирай взаимно простое из n/2..n.
🔗 Подробнее
@nuancesprog #Languages
Разработчик protty поделился заметками о проектировании многопоточного цикла событий на Zig. Он хотел сделать рантайм в духе Go или Tokio, но без аллокаций в куче.
Он напоминает, что модель «поток на ядро» часто выигрывает по пропускной способности и хвостовой задержке. Но распределять задачи по ядрам без воровства задач сложно, и не всегда это оправдано.
Готового кода нет: автор решил, что идея пока поживёт в голове. Среди выводов: не усложняй park/unpark и выбирай взаимно простое из n/2..n.
🔗 Подробнее
@nuancesprog #Languages
👍3
Tailscale превысил 10 Гбит/с на Linux
Tailscale выпустила набор изменений для Linux-клиента. Они ускоряют передачу данных через UDP segmentation offload и оптимизацию контрольных сумм.
Реализация wireguard-go в пользовательском пространстве обгоняет ядерный WireGuard. На bare metal Linux скорость превысила 10 Гбит/с.
Попробовать можно в нестабильном клиенте или Tailscale v1.40 в ближайшие дни. Но бенчмарк iperf3 на Ubuntu 22.04 — не гарантия для твоего окружения.
🔗 Подробнее
@nuancesprog #Infrastructure #Linux
Tailscale выпустила набор изменений для Linux-клиента. Они ускоряют передачу данных через UDP segmentation offload и оптимизацию контрольных сумм.
Реализация wireguard-go в пользовательском пространстве обгоняет ядерный WireGuard. На bare metal Linux скорость превысила 10 Гбит/с.
Попробовать можно в нестабильном клиенте или Tailscale v1.40 в ближайшие дни. Но бенчмарк iperf3 на Ubuntu 22.04 — не гарантия для твоего окружения.
🔗 Подробнее
@nuancesprog #Infrastructure #Linux
👍5
Jepsen проверил ParticleDB и нашёл 96 проблем
Jepsen проверил ParticleDB с 1.1.4 до 1.1.18.11.rc-22. Для большинства хватало одного сервера, одного клиента и никаких сбоев.
К версии 1.1.18.11.rc-22 остались десять нерешённых проблем. При обычной работе в режиме
Также
🔗 Подробнее
@nuancesprog #Data
Jepsen проверил ParticleDB с 1.1.4 до 1.1.18.11.rc-22. Для большинства хватало одного сервера, одного клиента и никаких сбоев.
К версии 1.1.18.11.rc-22 остались десять нерешённых проблем. При обычной работе в режиме
occ по умолчанию база теряла зафиксированные записи.Также
serializable допускал аномалии и Lost Update. Orkes выпустила 1.1.19-rc.13 и заявляет, что исправила все оставшиеся проблемы.🔗 Подробнее
@nuancesprog #Data
👍2
Semantic Compression
Кейси Муратори иронично разбирает типичный C++-подход: классы для каждой сущности. Наследование и шаблоны превращают простую модель в кашу.
Он считает, что учебные материалы по C++ в основном плохие. Сам он потратил шесть лет, прежде чем отказался от ООП.
В следующих статьях он покажет механические приёмы работы с кодом. Начнёт с Movement Panel — окна с кнопками поворота на 90 градусов.
🔗 Подробнее
@nuancesprog #Opinion
Кейси Муратори иронично разбирает типичный C++-подход: классы для каждой сущности. Наследование и шаблоны превращают простую модель в кашу.
Он считает, что учебные материалы по C++ в основном плохие. Сам он потратил шесть лет, прежде чем отказался от ООП.
В следующих статьях он покажет механические приёмы работы с кодом. Начнёт с Movement Panel — окна с кнопками поворота на 90 градусов.
🔗 Подробнее
@nuancesprog #Opinion
👍4
RAMBO: утечка данных с air-gap компьютеров через радиосигналы RAM
Вредонос на изолированной машине генерирует радиосигналы через шины памяти. Так можно передать файлы, изображения, нажатия клавиш и ключи шифрования.
Изолированные системы часто защищают самые чувствительные данные. Эта атака превращает RAM в радиопередатчик без сетевого доступа.
Скорость утечки достигает 1000 бит в секунду. Автор предлагает контрмеры для этой угрозы.
🔗 Подробнее
@nuancesprog #Security
Вредонос на изолированной машине генерирует радиосигналы через шины памяти. Так можно передать файлы, изображения, нажатия клавиш и ключи шифрования.
Изолированные системы часто защищают самые чувствительные данные. Эта атака превращает RAM в радиопередатчик без сетевого доступа.
Скорость утечки достигает 1000 бит в секунду. Автор предлагает контрмеры для этой угрозы.
🔗 Подробнее
@nuancesprog #Security
👍3
Linux: уязвимость TCP use-after-free с CVSS 9.8
Уязвимость CVE-2026-98432 — use-after-free в IPv4 TCP-рукопожатии. Она позволяет удалённо выполнить код без аутентификации.
Ядро исправило её 15 октября, но Ubuntu и RHEL ещё не выпустили фикс. Контейнеры используют ядро хоста, поэтому новый образ не спасает.
Если патча нет, сбрасывай TCP-пакеты с IPv4-опциями. Go открывает multipath TCP-слушатели по умолчанию, проверь такие хосты первыми.
🔗 Подробнее
@nuancesprog #Security #Linux
Уязвимость CVE-2026-98432 — use-after-free в IPv4 TCP-рукопожатии. Она позволяет удалённо выполнить код без аутентификации.
Ядро исправило её 15 октября, но Ubuntu и RHEL ещё не выпустили фикс. Контейнеры используют ядро хоста, поэтому новый образ не спасает.
Если патча нет, сбрасывай TCP-пакеты с IPv4-опциями. Go открывает multipath TCP-слушатели по умолчанию, проверь такие хосты первыми.
🔗 Подробнее
@nuancesprog #Security #Linux
👍2
Обгоняем компилятор на знаковом 32-битном делении
Автор показывает, как вручную ускорить знаковое деление 32-битных чисел.
Компилятор генерирует корректный, но не самый быстрый код.
Такие операции часто встречаются в горячих циклах.
Разница в несколько инструкций заметно влияет на скорость.
Приём заменяет деление умножением и сдвигами, но усложняет чтение.
Проверяй поведение на отрицательных числах и границах диапазона.
🔗 Подробнее
@nuancesprog #Languages #C
Автор показывает, как вручную ускорить знаковое деление 32-битных чисел.
Компилятор генерирует корректный, но не самый быстрый код.
Такие операции часто встречаются в горячих циклах.
Разница в несколько инструкций заметно влияет на скорость.
Приём заменяет деление умножением и сдвигами, но усложняет чтение.
Проверяй поведение на отрицательных числах и границах диапазона.
🔗 Подробнее
@nuancesprog #Languages #C
👍2
В реальном репозитории ноль @ts-ignore и 117 as unknown as
Автор проверил 610 исходных файлов TypeScript. Запрещённых @ts-ignore не нашлось, зато grep показал 117 двойных приведений as unknown as.
Конструкция as unknown as обходит правило no-explicit-any и проходит ревью. Она семантически равна as any, но обычный grep её не ловит.
В CI добавили grep с бюджетом и явным allowlist-файлом. Исключение требует причины, а бюджет можно только уменьшать.
🔗 Подробнее
@nuancesprog #Languages #TypeScript
Автор проверил 610 исходных файлов TypeScript. Запрещённых @ts-ignore не нашлось, зато grep показал 117 двойных приведений as unknown as.
Конструкция as unknown as обходит правило no-explicit-any и проходит ревью. Она семантически равна as any, но обычный grep её не ловит.
В CI добавили grep с бюджетом и явным allowlist-файлом. Исключение требует причины, а бюджет можно только уменьшать.
🔗 Подробнее
@nuancesprog #Languages #TypeScript
👍3
OmniDiff: быстрый content-aware Git difftool на Rust
OmniDiff сравнивает файлы по типу содержимого, а не просто построчно. Он понимает разные форматы файлов и выбирает под них свой алгоритм.
Разработчику это даёт меньше шума в ревью. Автор заявляет, что инструмент корректно обрабатывает 99,95% изменений кода и работает быстрее 100 мс.
Можно взять готовые бинарники с релизов или собрать через
🔗 Подробнее
@nuancesprog #Tools #Rust
OmniDiff сравнивает файлы по типу содержимого, а не просто построчно. Он понимает разные форматы файлов и выбирает под них свой алгоритм.
Разработчику это даёт меньше шума в ревью. Автор заявляет, что инструмент корректно обрабатывает 99,95% изменений кода и работает быстрее 100 мс.
Можно взять готовые бинарники с релизов или собрать через
cargo install --locked omnidiff. Для VS Code встроенное сравнение пока заменить нельзя.🔗 Подробнее
@nuancesprog #Tools #Rust
👍3
Proton: проблема не в AI, а в руководстве
404 Media выяснила, что CEO Proton Andy Yen назвал просьбу инженера о пентесте «loser thinking». Он призвал меньше «любовно писать код» и больше использовать AI.
Автор считает, что дело не в AI, а в унижении сотрудника за поднятую проблему безопасности. Для приватного сервиса осторожность — это часть продукта, который покупают пользователи.
Сотрудник на Reddit оправдал Йена: пентесты — это ок, если не тормозят пайплайн. Автор видит в этом согласие с корпоративной линией, а не честный спор.
🔗 Подробнее
@nuancesprog #Opinion
404 Media выяснила, что CEO Proton Andy Yen назвал просьбу инженера о пентесте «loser thinking». Он призвал меньше «любовно писать код» и больше использовать AI.
Автор считает, что дело не в AI, а в унижении сотрудника за поднятую проблему безопасности. Для приватного сервиса осторожность — это часть продукта, который покупают пользователи.
Сотрудник на Reddit оправдал Йена: пентесты — это ок, если не тормозят пайплайн. Автор видит в этом согласие с корпоративной линией, а не честный спор.
🔗 Подробнее
@nuancesprog #Opinion
👍3
Trigger.dev: утечка переменных окружения клиентов
В Trigger.dev произошёл инцидент безопасности. Атакующий получил доступ к переменным окружения части организаций.
Переменные окружения часто содержат ключи API и секреты. Утечка таких данных открывает доступ к вашим сервисам.
Компания уже заблокировала эксплойт и уведомила пострадавших. Проверь почту и смени скомпрометированные секреты в своих проектах.
🔗 Подробнее
@nuancesprog #Security
В Trigger.dev произошёл инцидент безопасности. Атакующий получил доступ к переменным окружения части организаций.
Переменные окружения часто содержат ключи API и секреты. Утечка таких данных открывает доступ к вашим сервисам.
Компания уже заблокировала эксплойт и уведомила пострадавших. Проверь почту и смени скомпрометированные секреты в своих проектах.
🔗 Подробнее
@nuancesprog #Security
👍1
Codex незаметно изнашивал SSD: 37 ТБ за 21 день
Один разработчик заметил, что SSD получил около 37 ТБ записей за 21 день.
Виновниками оказались база logs_2.sqlite и её WAL-файл (журнал предзаписи).
Файл оставался небольшим, но каждая вставка и удаление логов шли в SQLite.
TRACE, самый подробный уровень логирования, работал по умолчанию, и RUST_LOG=warn не выключал его.
Версия 0.142.0 существенно снизила шум: ранние тесты показали около 85% меньше записей.
Если используешь старую сборку, обнови и проверь счётчики реальной записи на SSD.
🔗 Подробнее
@nuancesprog #Tools #Rust
Один разработчик заметил, что SSD получил около 37 ТБ записей за 21 день.
Виновниками оказались база logs_2.sqlite и её WAL-файл (журнал предзаписи).
Файл оставался небольшим, но каждая вставка и удаление логов шли в SQLite.
TRACE, самый подробный уровень логирования, работал по умолчанию, и RUST_LOG=warn не выключал его.
Версия 0.142.0 существенно снизила шум: ранние тесты показали около 85% меньше записей.
Если используешь старую сборку, обнови и проверь счётчики реальной записи на SSD.
🔗 Подробнее
@nuancesprog #Tools #Rust
👍1
Ubuntu не выпустила патч для CVE-2026-98432
В ядре Linux нашли критическую уязвимость CVE-2026-98432, существующую с 2016 года. Anthropic собрала рабочий эксплойт, дающий root на сервере.
Debian выпустил патч 16 октября, а Ubuntu тянет больше двух недель. Все поддерживаемые релизы Ubuntu, включая LTS, помечены как уязвимые.
Волонтёрские проекты вроде Arch и Alpine выпустили фикс, а Ubuntu — нет. Автор отключил серверы и решил перенести их с Ubuntu.
🔗 Подробнее
@nuancesprog #Security #Linux
В ядре Linux нашли критическую уязвимость CVE-2026-98432, существующую с 2016 года. Anthropic собрала рабочий эксплойт, дающий root на сервере.
Debian выпустил патч 16 октября, а Ubuntu тянет больше двух недель. Все поддерживаемые релизы Ubuntu, включая LTS, помечены как уязвимые.
Волонтёрские проекты вроде Arch и Alpine выпустили фикс, а Ubuntu — нет. Автор отключил серверы и решил перенести их с Ubuntu.
🔗 Подробнее
@nuancesprog #Security #Linux
👍1