The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

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

19.02.2021 09:31

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

Проблема вызвана переполнением буфера в ctypes-функции PyCArg_repr(), возникающем из-за небезопасного использования sprintf. В частности, на обработку результата выполнения преобразования 'sprintf(buffer, "<cparam '%c' (%f)>", self->tag, self->value.d)' выделялся статический буфер размером 256 байт ("char buffer[256]"), в то время как результат мог превышать данное значение. Для проверки подверженности приложений уязвимости можно попробовать передать значение "1e300", которое при обработке методом c_double.from_param приведёт к краху, так как результирующие число содержит 308 знаков и не умещается в 256-байтный буфер. Пример проблемного кода:


   import ctypes
   x = ctypes.c_double.from_param(1e300)
   repr(x)

Проблема остаётся неисправленной в Debian, Ubuntu и FreeBSD, но уже устранена в Arch Linux, Fedora, SUSE и Gentoo. В RHEL уязвимость не проявляется из-за сборки пакетов в режиме FORTIFY_SOURCE, блокирующем подобные переполнения буфера в строковых функциях.

Дополнение: Релизы Python 3.9.2 и 3.8.8 с устранением уязвимости опубликованы раньше изначально намеченного срока.

  1. Главная ссылка к новости (https://news.ycombinator.com/i...)
  2. OpenNews: Обновление Python 3.8.5 с устранением уязвимостей
  3. OpenNews: Локальная root-уязвимость в pam-python
  4. OpenNews: Выпуск языка программирования Python 3.9
  5. OpenNews: Google открыл Atheris, инструментарий для fuzzing-тестирования кода на языке Python
  6. OpenNews: Debian и Fedora пытаются справиться с проблемой мелких зависимостей
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/54616-python
Ключевые слова: python
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (95) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 09:42, 19/02/2021 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • –4 +/
     
  • 1.2, Онаним (?), 09:56, 19/02/2021 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +17 +/
     

     ....ответы скрыты (4)

  • 1.3, Fracta1L (ok), 09:57, 19/02/2021 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • –8 +/
     
     
  • 2.7, Аноним (6), 09:59, 19/02/2021 Скрыто ботом-модератором     [к модератору]
  • –1 +/
     
     
  • 3.8, Fracta1L (ok), 09:59, 19/02/2021 Скрыто ботом-модератором     [к модератору]
  • –6 +/
     
     
  • 4.16, Аноним (16), 10:35, 19/02/2021 Скрыто ботом-модератором     [к модератору]
  • –3 +/
     
  • 4.17, Леголас (ok), 10:38, 19/02/2021 Скрыто ботом-модератором     [к модератору]
  • +5 +/
     
     
  • 5.19, Fracta1L (ok), 10:42, 19/02/2021 Скрыто ботом-модератором     [к модератору]
  • +14 +/
     
  • 5.48, Аноним (48), 13:34, 19/02/2021 Скрыто ботом-модератором     [к модератору]
  • –3 +/
     
  • 5.100, vantoo (ok), 21:26, 20/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > зашёл почитать дельные, толковые комментарии

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

     
  • 4.45, oneMetr (?), 12:56, 19/02/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ошибку поправили в С или в pyton?
     
     
  • 5.63, Аноним (-), 17:53, 19/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Ошибку поправили в С или в 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(слишком_маленький_буфер,...)!


     
  • 3.15, Аноним (14), 10:26, 19/02/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    PyPy быстрее CPython! Правда PyPy использует JIT, а это очень плохо.
     
     
  • 4.27, Чебур (?), 11:16, 19/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    А что в этом плохого, куча языков его использует?
     
     
  • 5.31, Аноним (31), 11:36, 19/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Обычно джит рантаймы принято ругать за то, что им нужна память, помеченная сразу на запись и исполнение, несекурно!
     
  • 5.40, Аноним (-), 12:28, 19/02/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    1) W^X не работает.
    2) Сгенерить оптимизированный код - проц жрет, внезапно! С компилируемым то яп это было где-то там, на билдферме, 1 раз на всю толпу. А вот так это уже у вас, локально, в процессе работы. Так что питоннетормозит, но проца и оперативки все же докупите, да?!
    3) А, и кодогенератор, конечно, тоже припереть придется. И таскать его везде где хочется это втулить.
    4) Кстати, сколько процессорных архитектур это все поддерживает, например? А то скриптовый язык прибитый на гвозди к полутора процовым архитектурам выглядит особенно издевательски. JS, кстати, примерно вот таким и получился.
     
  • 2.13, Брат Анон (ok), 10:23, 19/02/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Питон -- это попытка исправить дыры Си. Со всеми вытекающими последствиями. Чего ты орёшь, школоло?
     
     
  • 3.32, alex312 (?), 11:38, 19/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    похоже ты здесь недавно и не знаешь всех поциентов "в лицо" :)

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

     
  • 3.38, заминированный тапок (ok), 12:15, 19/02/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Питон -- это попытка исправить дыры Си.

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

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

     
     
  • 4.47, Аноним (47), 13:06, 19/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    >  "марсоход perseverance - это попытка исправить недочёты автомата Калашникова"

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

     
  • 3.95, Чел (?), 15:21, 20/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Какие еще дыры Си? В данном случае у Си все хорошо. Это проблемы той макаки, которая писала CPython.
     
  • 2.22, Аноним (22), 10:55, 19/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Не в нём, а в модуле ctypes. Переписать модуль на Rust? Так он же, всё равно, должен вызывать сишные функции.
     
     
  • 3.101, Аноним (101), 22:46, 23/02/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Раст нужен для того, чтобы вызывать unsafe (C|asm)
     
  • 2.24, _ (??), 11:05, 19/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Надо было юзать https://github.com/RustPython/RustPython
     
     
  • 3.102, Аноним (101), 22:54, 23/02/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Дважды тормознутый?!
     
  • 2.82, Аноним (82), 23:03, 19/02/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ты не поверишь, но его эталонная реализация написана на С.
    Какие там ещё дыры должны быть? JAVA-вские? :)
     
  • 2.87, Аноним (87), 02:04, 20/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    И где бан, модератор?
     
  • 2.103, Здрасьте (?), 20:55, 24/02/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Это не Пайтон, это расширение (модуль).
     

  • 1.4, Рефрен (?), 09:57, 19/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    > обработчиках, вызывающих функции на языке Си
    > Си

    ну ясно

     
     
  • 2.10, Аноним (-), 10:16, 19/02/2021 Скрыто ботом-модератором     [к модератору]
  • –2 +/
     
     
  • 3.21, Аноним (21), 10:47, 19/02/2021 Скрыто ботом-модератором     [к модератору]
  • +/
     
     
  • 4.25, Аноним (-), 11:08, 19/02/2021 Скрыто ботом-модератором     [к модератору]
  • +1 +/
     
     
  • 5.29, Аноним (21), 11:22, 19/02/2021 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 3.26, anonymous (??), 11:09, 19/02/2021 Скрыто ботом-модератором     [к модератору]
  • +/
     
     
  • 4.28, Fracta1L (ok), 11:17, 19/02/2021 Скрыто ботом-модератором     [к модератору]
  • –1 +/
     
  • 2.41, Аноним (-), 12:29, 19/02/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > ну ясно

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

     

  • 1.11, Аноним (-), 10:18, 19/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Походу кто-то попытался вычислить чему равен гугол, и наконец понял почему сообщения от инопланетян не рекомендуется декодировать - "can take over all systems on earth" :)
     
  • 1.12, Аноним (12), 10:18, 19/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > repr(x)

    Но зачем?

     
     
  • 2.30, Mim (ok), 11:27, 19/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Чуть более близкие к жизни print(x), str(x) и f'x: {x}'  приводят к тому же результату.
     
     
  • 3.43, Аноним (12), 12:40, 19/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Зачем выводить промежуточные представления, предназначенные исключительно для передачи в сишные дыре^wфункции?
     
     
  • 4.54, userd (ok), 16:11, 19/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    для отладки, например.
     
     
  • 5.65, Аноним (12), 18:29, 19/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    если только для отладки самих ctypes
     

  • 1.18, Аноним (16), 10:40, 19/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Питон2 тоже подвержен. Но он уже не поддерживается. И судя по тому что за все это время никто не применил данные методы, в данной последовательности, оно никому и не надо. И это при том что питон всегда применяли для вычислений.
     
  • 1.23, Аноним (21), 10:55, 19/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Не работает что-то. И тут я обратил внимание, что у меня есть только 3.8.8rc1 с 3.9.2rc1 и собраны они с _FORTIFY_SOURCE. Мде, надеялся увидеть сегфолт в питоне (хоть и сишный).
     
     
  • 2.66, userd (ok), 18:49, 19/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > надеялся увидеть сегфолт в питоне (хоть и сишный).

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

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

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

     

  • 1.33, Аноним (33), 11:46, 19/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Под гентой не воспроизводится. Причём ни на втором, ни на третьем пайтоне.
     
     
  • 2.35, Аноним (33), 12:00, 19/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    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 символов.

     
     
  • 3.37, Аноним (37), 12:11, 19/02/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    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)

     
     
  • 4.42, Аноним (-), 12:30, 19/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > *** buffer overflow detected ***: terminated

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

     

  • 1.34, Аноним (34), 11:56, 19/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    пишет "*** buffer overflow detected ***: python2 terminated"
    это плохо или хорошо?
     
     
  • 2.36, Аноним (33), 12:01, 19/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Это fortify source - хорошо. Переполнение буфера задетектилось и эксплойт запустить не получится, процесс самоликвидируется.
     

  • 1.44, Аноним (44), 12:44, 19/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    > Проблема также затрагивает ветки Python 3.8 и 3.9, но обновления для них пока находятся в состоянии

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

     
     
  • 2.46, Аноним (46), 13:00, 19/02/2021 [^] [^^] [^^^] [ответить]  
  • +8 +/
    Ну всё валим на джаваскрипт там безопасность из npm прям так и сочится.
     
     
  • 3.49, Аноним (48), 13:36, 19/02/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    А вы пробовали там 1e300 посчитать? Я не уверен что у вебмакак хватает фантазии на такие вычисления, они все же не те ботаны лабораторные :)
     
     
  • 4.104, тер (?), 08:18, 07/11/2023 [^] [^^] [^^^] [ответить]  
  • +/
    1e16 там максимум
     

  • 1.50, Страдивариус (?), 13:59, 19/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Почему до сих пор нет камента о том, что нужно переписать пихтон на хруст?
     
     
  • 2.79, Наноним (?), 22:31, 19/02/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Надо переписать всё что написано на Питоне на Rust
     
     
  • 3.83, Аноним (82), 23:04, 19/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Rust'о-писалка отвалится :)
     
  • 2.92, Аноним (92), 11:05, 20/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Лови
    https://github.com/RustPython/RustPython
     

  • 1.51, Аноним (-), 14:18, 19/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Надо Python пеерписать на Rust-е? что б такого не происходило.
    А да, и Rust надо переписать на исправленном Python-е, ну так для профилактики чиста.
     
  • 1.52, еман (?), 14:28, 19/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    перепесать на Rust/Go/D - делов то
     
     
  • 2.62, Аноним (62), 17:36, 19/02/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Облом состоит в том что они ... толком не умеют к другим ЯП интерфейситься! В лучшем случае - вывесят сишный :D :D :D интерфейс, как единственное что раально подключить. А теперь вопрос на засыпку: как это сделать safe? :P
     
     
  • 3.64, Аноним (-), 18:02, 19/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Облом состоит в том что они ... толком не умеют к другим ЯП интерфейситься! В лучшем случае - вывесят сишный :D :D :D

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


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

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

     
     
  • 4.75, Аноним (-), 22:14, 19/02/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > https://doc.rust-lang.org/std/ffi/index.html

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

     
     
  • 5.85, Аноним (85), 23:13, 19/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Вообще-то, это задуманно для работы в обе стороны , специально есть типы данных... большой текст свёрнут, показать
     
  • 3.68, еман (?), 19:13, 19/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Облом состоит в том что они ... толком не умеют к другим
    > ЯП интерфейситься! В лучшем случае - вывесят сишный :D :D :D
    > интерфейс, как единственное что раально подключить. А теперь вопрос на засыпку:
    > как это сделать safe? :P

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

     
     
  • 4.70, Аноним (-), 19:38, 19/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > твой облом состоит в том, что у всех этих языков отличное взаимодействие
    > с C/C++, ну и с питоном

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

     
  • 4.76, Аноним (-), 22:15, 19/02/2021 [^] [^^] [^^^] [ответить]  
  • –4 +/
    > твой облом состоит в том, что у всех этих языков отличное взаимодействие
    > с C/C++, ну и с питоном

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

     
     
  • 5.88, Аноним (88), 03:50, 20/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Эх, виндузятники-виндузоводы 8230 В никсах есть классический интерфейс, через... большой текст свёрнут, показать
     
     
  • 6.97, Аноним (-), 18:29, 20/02/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Безопасно, кучу пайпов чтобы попить смузи
     
     
  • 7.98, Аноним (-), 20:30, 20/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Безопасно, кучу пайпов чтобы попить смузи

    "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 и прочих "супертехнологий", конечно виднее.

     
     
  • 8.99, Аноним (-), 20:40, 20/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Кстати, вижу им даже невдомёк, что питонячьи реализации бывают разные, на разных... текст свёрнут, показать
     
  • 5.96, еман (?), 16:17, 20/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    >> твой облом состоит в том, что у всех этих языков отличное взаимодействие
    >> с C/C++, ну и с питоном
    > Да? Ну и как из питона хруст позвать? Питон вообще в курсе
    > абстракций хрустиков? Или вы как максимум можете типа-сишный-типа-не-сишный экстеншн
    > ему вывесить? С прямо таки "safe" сишным api/abi? :)

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

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

     

  • 1.53, anonymous (??), 15:56, 19/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    подтверждаю, на манджаре питон крашится, и даже без точек с запятой в конце строк
    > import ctypes;
    > x = ctypes.c_double.from_param(1e300);
     
     
  • 2.81, Плохой Танцор (?), 22:59, 19/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > и даже без точек с запятой

    Щито?

     

  • 1.67, Аноним (-), 19:06, 19/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    Для тех кто в танке. Виноваты питонисты, которые не умеют работать с функциями чистого Си.

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

     
     
  • 2.69, Аноним (69), 19:33, 19/02/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ждем четверку. Для несовместимости можно использовать уже три пробела, бы... "программисты пехтона" найдут этому применение и скажут так даже лучше и красивее и подложат это несчастным пользователям.
     
     
  • 3.78, Аноним (-), 22:17, 19/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Ждем четверку. Для несовместимости можно использовать уже три пробела, бы... "программисты
    > пехтона" найдут этому применение и скажут так даже лучше и красивее
    > и подложат это несчастным пользователям.

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

     
  • 2.93, Ф1 (?), 13:23, 20/02/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >Для тех кто в танке. Виноваты питонисты, которые не умеют работать с функциями чистого Си.

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

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

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

     

  • 1.71, Аноним (71), 20:17, 19/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    >В RHEL уязвимость не проявляется из-за сборки пакетов в режиме FORTIFY_SOURCE, блокирующем подобные переполнения буфера в строковых функциях.<

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

     
  • 1.72, Плохой Танцор (?), 20:44, 19/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    $ 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
    Аварийный останов

     
     
  • 2.77, Аноним (-), 22:17, 19/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    [quote]
    $ python
    bash: python: command not found
    [/quote]
    Так эффективнее :)
     
     
  • 3.80, Плохой Танцор (?), 22:51, 19/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > bash: python: command not found

    А смысл?

     

  • 1.73, Аноним (73), 21:30, 19/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Проблема также затрагивает ветки Python 3.8 и 3.9, но обновления для них пока находятся в состоянии кандидата в релизы (релиз запланирован на 1 марта).

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

     
     
  • 2.74, Аноним (-), 22:10, 19/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > О%ели чтоли столько времени тянуть с фиксом уязвимости?

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

     
     
  • 3.84, Аноним (82), 23:07, 19/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > бб может патчить свое ископаемое сам

    ББ? Bridge Baby?

     
  • 3.89, б.б. (?), 10:14, 20/02/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Я ctypes не использую
     
  • 2.86, userd (ok), 00:38, 20/02/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Дружище,
    обнаруженная ошибка досадна, но как мне кажется проявляться должна крайне редко.
    Если не затруднит - напишите как можно эксплуатировать эту уязвимость.
    Мне вот слабо придумать, а Вы, вероятно, уже придумали - оттого и негодуете?

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

     
  • 2.90, б.б. (?), 10:15, 20/02/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    И ещё, патчи бывают и вне апстрима
     

  • 1.91, Аноним (91), 10:54, 20/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Всем кто не в курсе. Питон на расте уже существует.
    https://github.com/RustPython/RustPython
    И да там нет ctypes на данный момент, так что код из примера не запустится :)
     
  • 1.94, Ilya Indigo (ok), 14:10, 20/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    > В RHEL уязвимость не проявляется из-за сборки пакетов в режиме FORTIFY_SOURCE, блокирующем подобные переполнения буфера в строковых функциях.

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

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру