Новость про log2j jndi lookup не вмещается в голове. Точно так же не вмещается "фикс" и освещение в СМИ. Тысячи обезьян кидаются какашками "джава дырявая", "пол-интернета хакнуто", "энтерпрайз кодинг гыгы."
Во-первых, фундаментально, с какой стати ПАРАМЕТРЫ (не шаблон!) вывода интерпретировались? Что это за бред? Когда это придумали? Сейчас все носятся с JNDI. Но подождите, там есть куча прочих ресолверов -- например env: и привет пароли по 12factor. Такой код просто не объяснить "ошибкой", это надо было специально реализовывать и тестировать.
Во-вторых, КТО. Все как-то орут "а, log4j уязвимость!" Ни в одной из "аналитических" статей не написаны дата-автор-ревьюеры коммита. Дело не в JNDI, а в архитектуре. НИКОГДА параметры вывода не должны интерпретироваться. Сказали LOG.debug("{}", "\n\0${PASSWORD}") -- так и должно пойти, без эскейпов.
Этих людей надо опубликовать, допросить под присягой на предмет "откуда дурь взялась", проверить банковские приходы и покупки в полгода до и после, составить список куда они ещё коммитали и всё проверить. Выяснить, кто апрувнул их участие в проекте.
В-третьих, откуда сама дичь про использование JNDI / LDAP. Как конфиг решение, лдап мне нравится, но так не делает практически никто -- тот же Spring Boot тянет свой хттп конфиг сервер, хипстеры тянут свой etcd, пароли дают через секретс АПИ, ораклы всё всегда в БД, микрософт в реестре... LDAP server для хранения конфига прилаги? Не слышал.
"Уши" торчат настолько отчётливо, что весь хайп выглядит как "АНБ обосратушки, дыру словили, давайте заболтаем тему для дураков".
Во-первых, фундаментально, с какой стати ПАРАМЕТРЫ (не шаблон!) вывода интерпретировались? Что это за бред? Когда это придумали? Сейчас все носятся с JNDI. Но подождите, там есть куча прочих ресолверов -- например env: и привет пароли по 12factor. Такой код просто не объяснить "ошибкой", это надо было специально реализовывать и тестировать.
Во-вторых, КТО. Все как-то орут "а, log4j уязвимость!" Ни в одной из "аналитических" статей не написаны дата-автор-ревьюеры коммита. Дело не в JNDI, а в архитектуре. НИКОГДА параметры вывода не должны интерпретироваться. Сказали LOG.debug("{}", "\n\0${PASSWORD}") -- так и должно пойти, без эскейпов.
Этих людей надо опубликовать, допросить под присягой на предмет "откуда дурь взялась", проверить банковские приходы и покупки в полгода до и после, составить список куда они ещё коммитали и всё проверить. Выяснить, кто апрувнул их участие в проекте.
В-третьих, откуда сама дичь про использование JNDI / LDAP. Как конфиг решение, лдап мне нравится, но так не делает практически никто -- тот же Spring Boot тянет свой хттп конфиг сервер, хипстеры тянут свой etcd, пароли дают через секретс АПИ, ораклы всё всегда в БД, микрософт в реестре... LDAP server для хранения конфига прилаги? Не слышал.
"Уши" торчат настолько отчётливо, что весь хайп выглядит как "АНБ обосратушки, дыру словили, давайте заболтаем тему для дураков".