URL: https://www.opennet.dev/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 123323
[ Назад ]

Исходное сообщение
"Уязвимость в Python, проявляющаяся при обработке непроверенных дробных чисел в ctypes"

Отправлено opennews , 19-Фев-21 09:42 
Доступны корректирующие выпуски языка программирования  Python 3.7.10 и 3.6.13, в которых устранена уязвимость (CVE-2021-3177), способная привести к исполнению кода при обработке непроверенных чисел с плавающей запятой в обработчиках, вызывающих функции на языке Си при помощи механизма  ctypes. Проблема также затрагивает ветки Python 3.8  и 3.9, но обновления для них пока находятся в состоянии кандидата в релизы (релиз запланирован на 1 марта)...

Подробнее: https://www.opennet.dev/opennews/art.shtml?num=54616


Содержание

Сообщения в этом обсуждении
"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено Аноним , 19-Фев-21 09:42 
Срочно надо переписать на раст, милионы питомак под угрозой

"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено Онаним , 19-Фев-21 09:56 
Переписать питон на расте и назвать Pythorust уже предлагали?

"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено Fracta1L , 19-Фев-21 09:58 
Ищем опытных питорастеров!

"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено Аноним , 19-Фев-21 10:23 
Это здравая идея и расту поможет сильно! Только пишите без нового синтаксиса "case".

Если Python собрать с опцией -D_FORTIFY_SOURCE=2, то эксплуатация этой уязвимости будет невозможна:

*** buffer overflow detected ***: python terminated; report to <...>
Killed

На подходе FORTIFY_SOURCE=3, в glibc-2.33 и LLVM-9 уже есть, а в gcc ждем. https://lwn.net/Articles/844831/


"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено Аноним , 19-Фев-21 09:58 
Пустое Rusthon

"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено Мимокрокодил , 19-Фев-21 10:06 
ЩЕ пипідастром назвіть.

"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено Fracta1L , 19-Фев-21 09:57 
Казалось бы - Питон. Но в нём сишные дырени. Ору)

"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено Аноним , 19-Фев-21 09:59 
Без сишки под капотом язык мертвый в плане производительности.

"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено Fracta1L , 19-Фев-21 09:59 
Производительности в генерации дыр

"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено Аноним , 19-Фев-21 10:35 
Прикладыавай хруст к своей дыре, а то она течет.

"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено Леголас , 19-Фев-21 10:38 
зашёл почитать дельные, толковые комментарии — спасибо, всё <strike>как всегда</strike> по существу

"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено Fracta1L , 19-Фев-21 10:42 
> зашёл почитать дельные, толковые комментарии
> opennet.ru

Чел...


"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено Аноним , 19-Фев-21 13:34 
Хрустеры вообще умеют только хайповать. Блин, половина то и программировать кажется не умеет. Теоретически-крутые программисты :)

"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено vantoo , 20-Фев-21 21:26 
> зашёл почитать дельные, толковые комментарии

Не туда зашел.


"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено oneMetr , 19-Фев-21 12:56 
Ошибку поправили в С или в pyton?

"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено Аноним , 19-Фев-21 17:53 
> Ошибку поправили в С или в pyton?


    char buffer[256];
    switch(self->tag) {
    case 'b':
    case 'B':
        sprintf(buffer, "<cparam '%c' (%d)>",
        return PyUnicode_FromFormat("<cparam '%c' (%d)
...
case 'f':
        sprintf(buffer, "<cparam '%c' (%f)>",
            self->tag, self->value.f);
        break;

Очевидно же, что это питонячий код, с классическим питонячьим же фейлом в sprintf(слишком_маленький_буфер,...)!



"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено Аноним , 19-Фев-21 10:26 
PyPy быстрее CPython! Правда PyPy использует JIT, а это очень плохо.

"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено Чебур , 19-Фев-21 11:16 
А что в этом плохого, куча языков его использует?

"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено Аноним , 19-Фев-21 11:36 
Обычно джит рантаймы принято ругать за то, что им нужна память, помеченная сразу на запись и исполнение, несекурно!

"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено Аноним , 19-Фев-21 12:28 
1) W^X не работает.
2) Сгенерить оптимизированный код - проц жрет, внезапно! С компилируемым то яп это было где-то там, на билдферме, 1 раз на всю толпу. А вот так это уже у вас, локально, в процессе работы. Так что питоннетормозит, но проца и оперативки все же докупите, да?!
3) А, и кодогенератор, конечно, тоже припереть придется. И таскать его везде где хочется это втулить.
4) Кстати, сколько процессорных архитектур это все поддерживает, например? А то скриптовый язык прибитый на гвозди к полутора процовым архитектурам выглядит особенно издевательски. JS, кстати, примерно вот таким и получился.

"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено Брат Анон , 19-Фев-21 10:23 
Питон -- это попытка исправить дыры Си. Со всеми вытекающими последствиями. Чего ты орёшь, школоло?

"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено alex312 , 19-Фев-21 11:38 
похоже ты здесь недавно и не знаешь всех поциентов "в лицо" :)

велкам он боард !


"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено заминированный тапок , 19-Фев-21 12:15 
> Питон -- это попытка исправить дыры Си.

https://youtu.be/l_--ewb4YXg

и вот не смущает же человека, что сравнение Си и Питона - это в принципе как сказать: "марсоход perseverance - это попытка исправить недочёты автомата Калашникова"


"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено Аноним , 19-Фев-21 13:06 
>  "марсоход perseverance - это попытка исправить недочёты автомата Калашникова"

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


"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено Чел , 20-Фев-21 15:21 
Какие еще дыры Си? В данном случае у Си все хорошо. Это проблемы той макаки, которая писала CPython.

"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено Аноним , 19-Фев-21 10:55 
Не в нём, а в модуле ctypes. Переписать модуль на Rust? Так он же, всё равно, должен вызывать сишные функции.

"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено Аноним , 23-Фев-21 22:46 
Раст нужен для того, чтобы вызывать unsafe (C|asm)

"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено _ , 19-Фев-21 11:05 
Надо было юзать https://github.com/RustPython/RustPython

"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено Аноним , 23-Фев-21 22:54 
Дважды тормознутый?!

"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено Аноним , 19-Фев-21 23:03 
Ты не поверишь, но его эталонная реализация написана на С.
Какие там ещё дыры должны быть? JAVA-вские? :)

"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено Аноним , 20-Фев-21 02:04 
И где бан, модератор?

"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено Здрасьте , 24-Фев-21 20:55 
Это не Пайтон, это расширение (модуль).

"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено Рефрен , 19-Фев-21 09:57 
> обработчиках, вызывающих функции на языке Си
> Си

ну ясно


"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено Аноним , 19-Фев-21 10:16 
Хрустом, хрустом его обмажьте! Должны же два инструмента для имбецилов встретиться?

"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено Аноним , 19-Фев-21 10:47 
Си и руст? Чёт ты загнул бротишка.

"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено Аноним , 19-Фев-21 11:08 
петон и хруст он имел в виду, ты на столько туп что этого не понял лол

"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено Аноним , 19-Фев-21 11:22 
Я не верю, что он мог быть настолько туп, чтобы иметь в виду это.

"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено anonymous , 19-Фев-21 11:09 
Уровень вхождения в Rust, кстати, достаточно высокий (выше, чем на C++). И это причина по которой мы, например, rust не используем. Что вы имели в виду под "для имбецилов"?

"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено Fracta1L , 19-Фев-21 11:17 
Он имел в виду свою обидку из-за жжения в попе оттого что не смог осилить Раст

"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено Аноним , 19-Фев-21 12:29 
> ну ясно

С хрустом его скрестить. Получится 2 метра ржавой колючей проволоки


"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено Аноним , 19-Фев-21 10:18 
Походу кто-то попытался вычислить чему равен гугол, и наконец понял почему сообщения от инопланетян не рекомендуется декодировать - "can take over all systems on earth" :)

"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено Аноним , 19-Фев-21 10:18 
> repr(x)

Но зачем?


"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено Mim , 19-Фев-21 11:27 
Чуть более близкие к жизни print(x), str(x) и f'x: {x}'  приводят к тому же результату.

"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено Аноним , 19-Фев-21 12:40 
Зачем выводить промежуточные представления, предназначенные исключительно для передачи в сишные дыре^wфункции?

"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено userd , 19-Фев-21 16:11 
для отладки, например.

"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено Аноним , 19-Фев-21 18:29 
если только для отладки самих ctypes

"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено Аноним , 19-Фев-21 10:40 
Питон2 тоже подвержен. Но он уже не поддерживается. И судя по тому что за все это время никто не применил данные методы, в данной последовательности, оно никому и не надо. И это при том что питон всегда применяли для вычислений.

"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено Аноним , 19-Фев-21 10:55 
Не работает что-то. И тут я обратил внимание, что у меня есть только 3.8.8rc1 с 3.9.2rc1 и собраны они с _FORTIFY_SOURCE. Мде, надеялся увидеть сегфолт в питоне (хоть и сишный).

"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено userd , 19-Фев-21 18:49 
> надеялся увидеть сегфолт в питоне (хоть и сишный).

Не надо ждать милостей от природы!
сами можем сделать, ctypes и тут поможет -

import ctypes
proto = ctypes.CFUNCTYPE(None)
func = proto(0)
func()

у меня в 3.5 работает.


"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено Аноним , 19-Фев-21 11:46 
Под гентой не воспроизводится. Причём ни на втором, ни на третьем пайтоне.

"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено Аноним , 19-Фев-21 12:00 
Python 3.7.9 (default, Feb 10 2021, 02:14:12)
[GCC 9.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import ctypes;
>>> x = ctypes.c_double.from_param(1e300)
>>> repr(x)

"<cparam 'd' (1e+300)>"

Тут явно не 309 символов.


"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено Аноним , 19-Фев-21 12:11 
Python 3.8.5 (default, Jul 28 2020, 12:59:40)
[GCC 9.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import ctypes;
>>> x = ctypes.c_double.from_param(1e230);
>>> repr(x)

"<cparam 'd' (100000000000000009956644432600511718615881550253707240288894882888289682097749535512827356959114607773492443453354095454801046151441888338236034913910900102616284254148427024265175655196680942530570909289367345315883616691581616128.000000)>"

>>> import ctypes;
>>> x = ctypes.c_double.from_param(1e240);
>>> repr(x)

*** buffer overflow detected ***: terminated
Aborted (core dumped)


"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено Аноним , 19-Фев-21 12:30 
> *** buffer overflow detected ***: terminated

Хм, походу у тебя это не особо то и эксплойтабельное...


"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено Аноним , 19-Фев-21 11:56 
пишет "*** buffer overflow detected ***: python2 terminated"
это плохо или хорошо?

"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено Аноним , 19-Фев-21 12:01 
Это fortify source - хорошо. Переполнение буфера задетектилось и эксплойт запустить не получится, процесс самоликвидируется.

"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено Аноним , 19-Фев-21 12:44 
> Проблема также затрагивает ветки Python 3.8 и 3.9, но обновления для них пока находятся в состоянии

Все что нужно знать о хваленом пехтоне.


"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено Аноним , 19-Фев-21 13:00 
Ну всё валим на джаваскрипт там безопасность из npm прям так и сочится.

"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено Аноним , 19-Фев-21 13:36 
А вы пробовали там 1e300 посчитать? Я не уверен что у вебмакак хватает фантазии на такие вычисления, они все же не те ботаны лабораторные :)

"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено тер , 07-Ноя-23 08:18 
1e16 там максимум

"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено Страдивариус , 19-Фев-21 13:59 
Почему до сих пор нет камента о том, что нужно переписать пихтон на хруст?

"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено Наноним , 19-Фев-21 22:31 
Надо переписать всё что написано на Питоне на Rust

"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено Аноним , 19-Фев-21 23:04 
Rust'о-писалка отвалится :)

"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено Аноним , 20-Фев-21 11:05 
Лови
https://github.com/RustPython/RustPython

"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено Аноним , 19-Фев-21 14:18 
Надо Python пеерписать на Rust-е? что б такого не происходило.
А да, и Rust надо переписать на исправленном Python-е, ну так для профилактики чиста.

"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено еман , 19-Фев-21 14:28 
перепесать на Rust/Go/D - делов то

"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено Аноним , 19-Фев-21 17:36 
Облом состоит в том что они ... толком не умеют к другим ЯП интерфейситься! В лучшем случае - вывесят сишный :D :D :D интерфейс, как единственное что раально подключить. А теперь вопрос на засыпку: как это сделать safe? :P

"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено Аноним , 19-Фев-21 18:02 
> Облом состоит в том что они ... толком не умеют к другим ЯП интерфейситься! В лучшем случае - вывесят сишный :D :D :D

Экспертус опеннетус ...
https://doc.rust-lang.org/std/ffi/index.html


> интерфейс, как единственное что раально подключить. А теперь вопрос на засыпку:
> как это сделать safe? :P

Перестать уже ламерить и прочитать наконец определение "safe/unsafe"?


"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено Аноним , 19-Фев-21 22:14 
> https://doc.rust-lang.org/std/ffi/index.html

Дык, блин, экспертус-анонистус, там в обратную сторону надо. Объяснить пихону как поюзать этот твой хруст. И чего ты ему вывесиешь, кроме типа-сишного :D расширения? С сишным, внезапно, api/abi, что как бы врядли очень уж "safe" совершенно независимо от того что там у вас сегодня в определениях вашего маркетингового булшита и бредней фанбоев.


"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено Аноним , 19-Фев-21 23:13 
> Дык, блин, экспертус-анонистус, там в обратную сторону надо. Объяснить пихону как поюзать этот твой хруст.

Вообще-то, это задуманно для работы "в обе стороны", специально есть типы данных для "выходящих" и для "пришедших снаружи". Но да, ожидать что опеннетные анонимные эксперты будут ходить по ссылкам и (хоть немного) ознакомятся с темой, вместо писания "от балды" было слишком наивно.

> И чего ты ему вывесиешь, кроме типа-сишного :D
> расширения? С сишным, внезапно, api/abi,

"пихон", "хруст" - и при этом околонулевое знание матчасти.
Настоящий опеннетный эксперт!
*рукалицо*

1) Внезапно, ты можешь вывесить любой нескучный интерфейс, который придет тебе в голову. Правда, никаких гарантий, что кто-то захочет его использовать и нормальные разработчики предпочитают использовать что-то общепринятое, а не "смотритяянитакойкаквсе".

2) Интересно, с чего это IronPython или Jython или какой нибудь Transcrypt/Brython не смогут вдруг обойтись без сишного интерфейса?

3) Мне любопытно - радетели за вывешивание и использование сишного интерфейса для реализации https://github.com/RustPython/RustPython
они и гланды предлагают удалять автогеном через зад?

4)О JSON/YAML-RPC, protobuf и прочих возможностях передачи сериализированных данных эксперт, как я понимаю, тоже не слышал?

> что как бы врядли очень уж "safe" совершенно независимо
> от того что там у вас сегодня в
> определениях вашего маркетингового булшита и бредней фанбоев.

...
> булшита и бредней

Какая хорошая, меткая и, главное, самокритичная характеристика махрового опеннетного ламеризма, пытающегося косить под троллинг ...


"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено еман , 19-Фев-21 19:13 
> Облом состоит в том что они ... толком не умеют к другим
> ЯП интерфейситься! В лучшем случае - вывесят сишный :D :D :D
> интерфейс, как единственное что раально подключить. А теперь вопрос на засыпку:
> как это сделать safe? :P

твой облом состоит в том, что у всех этих языков отличное взаимодействие с C/C++, ну и с питоном


"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено Аноним , 19-Фев-21 19:38 
> твой облом состоит в том, что у всех этих языков отличное взаимодействие
> с C/C++, ну и с питоном

А могли бы придумать свой, нескучный интерфейс под каждый язык, вместо использования общепринятого!
Сразу двух зайцев одним пуком:
доказали бы всем, что "нитакиекаквсе"!
И бонусом получили бы одобрение местных мировых авторитетов разработки хелловордов!


"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено Аноним , 19-Фев-21 22:15 
> твой облом состоит в том, что у всех этих языков отличное взаимодействие
> с C/C++, ну и с питоном

Да? Ну и как из питона хруст позвать? Питон вообще в курсе абстракций хрустиков? Или вы как максимум можете типа-сишный-типа-не-сишный экстеншн ему вывесить? С прямо таки "safe" сишным api/abi? :)


"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено Аноним , 20-Фев-21 03:50 
> Да? Ну и как из питона хруст позвать? Питон вообще в курсе
> абстракций хрустиков? Или вы как максимум можете типа-сишный-типа-не-сишный экстеншн ему вывесить? С прямо таки "safe" сишным api/abi? :)

Эх, виндузятники-виндузоводы …

В никсах есть классический интерфейс, через который и взаимодействует большая часть мелких (и не очень) утилит.

$ cat adder.rs
use std::io;
use input_stream::InputStream;

fn main() {
    let stdin = io::stdin();
    let mut input = InputStream::new(stdin.lock());

    let a: i32 = input.scan().expect("int");
    let b: i32 = input.scan().expect("int");

println!("{} + {} = {}", a,b,a+b);
}

$ python -c "print(12);print(30)"|./adder
12 + 30 = 42
$ seq 3 4|./adder
3 + 4 = 7
$  echo 'puts "499 1"' | tclsh8.6 | perl -pe 'print "100";' |./adder
100499 + 1 = 100500


"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено Аноним , 20-Фев-21 18:29 
Безопасно, кучу пайпов чтобы попить смузи

"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено Аноним , 20-Фев-21 20:30 
> Безопасно, кучу пайпов чтобы попить смузи

"Write programs that do one thing and do it well. Write programs to work together. Write programs to handle text streams, because that is a universal interface.", The Art of Unix Programming, Eric Steven Raymond

Но пользователям Повершеллов, OLE, COM, ActiveX и прочих "супертехнологий", конечно виднее.


"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено Аноним , 20-Фев-21 20:40 
> Но пользователям Повершеллов, OLE, COM, ActiveX и прочих "супертехнологий", конечно виднее.

Кстати, вижу им даже невдомёк, что питонячьи реализации бывают разные, на разных платформах и языках - JS, .NET, Java ...
ну ... зато у них есть Повершелл и даже Линукс в WSL и они совсем-совсем как настоящие разрабоДчики :)  



"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено еман , 20-Фев-21 16:17 
>> твой облом состоит в том, что у всех этих языков отличное взаимодействие
>> с C/C++, ну и с питоном
> Да? Ну и как из питона хруст позвать? Питон вообще в курсе
> абстракций хрустиков? Или вы как максимум можете типа-сишный-типа-не-сишный экстеншн
> ему вывесить? С прямо таки "safe" сишным api/abi? :)

экспорт функций. ABI

RTFM! https://en.wikipedia.org/wiki/Application_binary_interface


"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено anonymous , 19-Фев-21 15:56 
подтверждаю, на манджаре питон крашится, и даже без точек с запятой в конце строк
> import ctypes;
> x = ctypes.c_double.from_param(1e300);

"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено Плохой Танцор , 19-Фев-21 22:59 
> и даже без точек с запятой

Щито?


"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено Аноним , 19-Фев-21 19:06 
Для тех кто в танке. Виноваты питонисты, которые не умеют работать с функциями чистого Си.

Язык Си не для быдлокодера.


"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено Аноним , 19-Фев-21 19:33 
Ждем четверку. Для несовместимости можно использовать уже три пробела, бы... "программисты пехтона" найдут этому применение и скажут так даже лучше и красивее и подложат это несчастным пользователям.

"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено Аноним , 19-Фев-21 22:17 
> Ждем четверку. Для несовместимости можно использовать уже три пробела, бы... "программисты
> пехтона" найдут этому применение и скажут так даже лучше и красивее
> и подложат это несчастным пользователям.

Лучше полтора. Пусть чешут репу как это с клавиатуры ввести.


"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено Ф1 , 20-Фев-21 13:23 
>Для тех кто в танке. Виноваты питонисты, которые не умеют работать с функциями чистого Си.

Heartbleed тоже питонисты допустили?

>Язык Си не для быдлокодера.

Понятно, значит не быдлокодеров просто не существует.


"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено Аноним , 19-Фев-21 20:17 
>В RHEL уязвимость не проявляется из-за сборки пакетов в режиме FORTIFY_SOURCE, блокирующем подобные переполнения буфера в строковых функциях.<

А что так можно было? и почему в Debian, Ubuntu не так?


"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено Плохой Танцор , 19-Фев-21 20:44 
$ python
Python 2.7.16 (default, Oct 10 2019, 22:02:15)
[GCC 8.3.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import ctypes
>>> x=ctypes.c_double.from_param(1e300)
>>> repr(x)

*** buffer overflow detected ***: python terminated
Аварийный останов


"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено Аноним , 19-Фев-21 22:17 
[quote]
$ python
bash: python: command not found
[/quote]
Так эффективнее :)

"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено Плохой Танцор , 19-Фев-21 22:51 
> bash: python: command not found

А смысл?


"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено Аноним , 19-Фев-21 21:30 
> Проблема также затрагивает ветки Python 3.8 и 3.9, но обновления для них пока находятся в состоянии кандидата в релизы (релиз запланирован на 1 марта).

О%ели чтоли столько времени тянуть с фиксом уязвимости?


"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено Аноним , 19-Фев-21 22:10 
> О%ели чтоли столько времени тянуть с фиксом уязвимости?

А в 2.х вообще никогда не починят. Но бб может патчить свое ископаемое сам.


"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено Аноним , 19-Фев-21 23:07 
> бб может патчить свое ископаемое сам

ББ? Bridge Baby?


"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено б.б. , 20-Фев-21 10:14 
Я ctypes не использую

"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено userd , 20-Фев-21 00:38 
Дружище,
обнаруженная ошибка досадна, но как мне кажется проявляться должна крайне редко.
Если не затруднит - напишите как можно эксплуатировать эту уязвимость.
Мне вот слабо придумать, а Вы, вероятно, уже придумали - оттого и негодуете?

Если уж не невтерпёж ждать, можно же пофиксить самостоятельно -
s/<cparam '%c' (%f)>/<cparam '%c' (%g)>/ в _ctypes.so


"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено б.б. , 20-Фев-21 10:15 
И ещё, патчи бывают и вне апстрима

"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено Аноним , 20-Фев-21 10:54 
Всем кто не в курсе. Питон на расте уже существует.
https://github.com/RustPython/RustPython
И да там нет ctypes на данный момент, так что код из примера не запустится :)

"Уязвимость в Python, проявляющаяся при обработке непроверенн..."
Отправлено Ilya Indigo , 20-Фев-21 14:10 
> В RHEL уязвимость не проявляется из-за сборки пакетов в режиме FORTIFY_SOURCE, блокирующем подобные переполнения буфера в строковых функциях.

В openSUSE тоже все пакеты с FORTIFY_SOURCE=2 собираются.