LINUX.ORG.RU

fish 3.6.2 и 3.6.3 с исправлением CVE-2023-49284

 , ,


0

3

Состоялся корректирующий выпуск 3.6.2 интерактивной командной оболочки fish с исправлением уязвимости CVE-2023-49284.


fish shell использует некоторые символы Unicode для внутренней маркировки подстановочных знаков и расширений. Этот неправильный подход позволял читать эти символы в выводе подстановки команд, вместо того чтобы преобразовать их в безопасное внутреннее представление.

Хотя это может вызвать неожиданное поведение при прямом вводе (например, echo \UFDD2HOME имеет тот же вывод, что и echo $HOME), это может стать незначительной проблемой безопасности, если вывод подается из внешней программы в подстановку команд, где такой вывод может не ожидаться.

Этот недостаток дизайна появился в самых ранних версиях fish, ещё до появления системы контроля версий, и, как считается, присутствует в каждой версии fish, выпущенной за последние 15 лет или более, хотя и с разными символами.

Выполнение кода не представляется возможным, но DoS-атака (через раскрытие большого количества скобок) или раскрытие информации (например, через расширение переменных) потенциально возможны при определенных обстоятельствах.

В версии 3.6.3 исправлены только тесты.

>>> Подробности

★★★★★

Проверено: maxcom ()

вот что бывает когда в язык/платформу не завезли нормального форматирования строк потому что корпорации выгоднее бойкотировать его развитие в пользу навязывая своих стремных проприетарных костылей%)

Syncro ★★★★★
()

Да, уязвимость серьёзнейшая. С её помощью можно легко переиграть и уничтожить всех пользователей fish. Обоих.

Smacker ★★★★★
()

Хорошо, что этот код через пару релизов просто выбросят.

ac130kz ★★
()

Выглядит так себе, конечно. Но вроде ничего страшного, DoS атаки на шелл я не боюсь.

akho
()

Рано новость написали - уже 3.6.4 вышла :)

Ja-Ja-Hey-Ho ★★★★★
()
Ответ на: комментарий от akho

А я как раз-таки одно время решил fish поиспользовать. И в итоге вернулся на привычный bash...

Smacker ★★★★★
()
Ответ на: комментарий от altwazar

Я вот тоже подумал, что если бы я изначально использовал fish, то так бы с ним и сидел. Но к моменту знакомства с fish я уже давно знал bash, и поэтому особых преимуществ не увидел.

Smacker ★★★★★
()

То есть когда выходит лапсе и алакритти новости никто не пишет, окей гугл

Xant1k ★★
()
Ответ на: комментарий от Smacker

По началу мне понравилась возможность привести шелл в нужное мне состояние в несколько понятных строчек настроек, и что после всего этого fish не начал тормозит.

Слегка бесила несовместимость с posix sh и башем, но теперь это одна из причин не возвращаться назад. Вызываемые скрипты стали на порядок реже выдавать неожиданные результаты.

altwazar ★★★★
()
Ответ на: комментарий от altwazar

zsh тоже приводится в нормальный вид без особого труда. Достаточно воспользоваться стандартной конфигурялкой, а также кое-что скопипастить из арчвики.

Werenter ★★☆
()
Ответ на: комментарий от Werenter

Мне лень было самому колупать, накатил ohmyzsh+powerlevel10k, и волосы шелковистые

Logopeft ★★
()
Ответ на: комментарий от Werenter

Величайшая лень, на каждой машине просто fish качаешь.

Там и Автокомплиты и подсветка и неплохие цвета, да и кучка фитч которые можно скопировать с множества плагинов OMZ, но такая божественная лень.

LibAccelerator
()

Авторы fish пишут на корявом английском, автор новости не удосужился при переводе его превратить в нормальный русский.

firkax ★★★★★
()
Ответ на: комментарий от HE_KOT

Я тоже сначала хотел про инет-переводчик написать, полез читать оригинал - а там такой же ужас, только на англ. Может быть они китайцы и свои release notes инет-переводчиком с китайского переводят.

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 1)

ОК. Уже лучше. А можно было так?

«Устранена уязвимость, сохранявшаяся на протяжении последних 15-ти лет существования проекта. Она потенциально позволяла провести DoS-атаку или раскрыть информацию через расширение переменных. Оболочка fish shell не преобразовывала некоторые символы Unicode в безопасное внутреннее представление при выводе команд. Такой подход мог вызвать непредсказуемое поведение при прямом вводе и создавал некоторую угрозу безопасности при получении вывода из внешних программ.»

P.S. За точность передачи сути не ручаюсь - оригинал не читал, с fish shell не знаком.

fox72
()
Ответ на: комментарий от Smacker

я уже давно знал bash, и поэтому особых преимуществ не увидел

Баг, связанный с закавычиванием переменных, есть в любом скрипте на bash, но не в любом скрипте на fish. Мне кажется, что знание bash важно для понимания преимуществ fish.

akho
()
Ответ на: комментарий от fox72

А можно было так?

За точность передачи сути не ручаюсь - оригинал не читал, с fish shell не знаком.

Нет, так нельзя, но все делают.

akho
()

fish здорового человека — это FIle SHell из mc.

annulen ★★★★★
()
Ответ на: комментарий от Werenter

zsh тоже приводится в нормальный вид без особого труда.

Гораздо проще и быстрее баша, но всё еще не fish. После добавления всех плюшек в zsh он у меня начинает не сильно, но подтупливать. А fish работает быстро и получилось разобраться с конфигом самому.

altwazar ★★★★
()
Ответ на: комментарий от akho

Баг, связанный с закавычиванием переменных, есть в любом скрипте на bash, но не в любом скрипте на fish.

Угу. Я как-то несколько часов потратил на попытку разобраться с примитивным bash скриптом в 10 строчек, думал с ума схожу уже. Был скрипт с частью, в которой перебирался список файлов из директории типа for i in $(ls /dir) ... echo $i .... Прекрасно себе работал и в один день начал выдавать полную дичь, при этом содержимое /dir не менялось. Там было несколько элементов с именами типа [file] и они начали вести себя как шаблон в echo $i.

altwazar ★★★★
()
Последнее исправление: altwazar (всего исправлений: 1)
Ответ на: комментарий от altwazar

Ну тут с $(ls /dir) начиная и далее.

Сейчас помогает shellcheck, но это ж разве подход.

akho
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.