The OpenNET Project / Index page

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



"Уязвимость в Python, проявляющаяся при обработке непроверенных дробных чисел в ctypes"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Уязвимость в 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.ru/opennews/art.shtml?num=54616

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по ответам | RSS]

1. Сообщение от Аноним (-), 19-Фев-21, 09:42   –4 +/
Срочно надо переписать на раст, милионы питомак под угрозой
Ответить | Правка | Наверх | Cообщить модератору

2. Сообщение от Онаним (?), 19-Фев-21, 09:56   +17 +/
Переписать питон на расте и назвать Pythorust уже предлагали?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #5, #6, #9

3. Сообщение от Fracta1L (ok), 19-Фев-21, 09:57   –8 +/
Казалось бы - Питон. Но в нём сишные дырени. Ору)
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #7, #13, #22, #24, #82, #87, #103

4. Сообщение от Рефрен (?), 19-Фев-21, 09:57   –2 +/
> обработчиках, вызывающих функции на языке Си
> Си

ну ясно

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #10, #41

5. Сообщение от Fracta1L (ok), 19-Фев-21, 09:58   –5 +/
Ищем опытных питорастеров!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2 Ответы: #14

6. Сообщение от Аноним (6), 19-Фев-21, 09:58   +/
Пустое Rusthon
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2

7. Сообщение от Аноним (6), 19-Фев-21, 09:59   –1 +/
Без сишки под капотом язык мертвый в плане производительности.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3 Ответы: #8, #15

8. Сообщение от Fracta1L (ok), 19-Фев-21, 09:59   –6 +/
Производительности в генерации дыр
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #7 Ответы: #16, #17, #45

9. Сообщение от Мимокрокодил (?), 19-Фев-21, 10:06   –1 +/
ЩЕ пипідастром назвіть.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2

10. Сообщение от Аноним (-), 19-Фев-21, 10:16   –2 +/
Хрустом, хрустом его обмажьте! Должны же два инструмента для имбецилов встретиться?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #4 Ответы: #21, #26

11. Сообщение от Аноним (-), 19-Фев-21, 10:18   +2 +/
Походу кто-то попытался вычислить чему равен гугол, и наконец понял почему сообщения от инопланетян не рекомендуется декодировать - "can take over all systems on earth" :)
Ответить | Правка | Наверх | Cообщить модератору

12. Сообщение от Аноним (12), 19-Фев-21, 10:18   +/
> repr(x)

Но зачем?

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #30

13. Сообщение от Брат Анон (ok), 19-Фев-21, 10:23   –2 +/
Питон -- это попытка исправить дыры Си. Со всеми вытекающими последствиями. Чего ты орёшь, школоло?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3 Ответы: #32, #38, #95

14. Сообщение от Аноним (14), 19-Фев-21, 10:23   –3 +/
Это здравая идея и расту поможет сильно! Только пишите без нового синтаксиса "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/

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5

15. Сообщение от Аноним (14), 19-Фев-21, 10:26   –1 +/
PyPy быстрее CPython! Правда PyPy использует JIT, а это очень плохо.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #7 Ответы: #27

16. Сообщение от Аноним (16), 19-Фев-21, 10:35   –3 +/
Прикладыавай хруст к своей дыре, а то она течет.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #8

17. Сообщение от Леголас (ok), 19-Фев-21, 10:38   +5 +/
зашёл почитать дельные, толковые комментарии — спасибо, всё <strike>как всегда</strike> по существу
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #8 Ответы: #19, #48, #100

18. Сообщение от Аноним (16), 19-Фев-21, 10:40   +/
Питон2 тоже подвержен. Но он уже не поддерживается. И судя по тому что за все это время никто не применил данные методы, в данной последовательности, оно никому и не надо. И это при том что питон всегда применяли для вычислений.
Ответить | Правка | Наверх | Cообщить модератору

19. Сообщение от Fracta1L (ok), 19-Фев-21, 10:42   +14 +/
> зашёл почитать дельные, толковые комментарии
> opennet.ru

Чел...

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #17

21. Сообщение от Аноним (21), 19-Фев-21, 10:47   +/
Си и руст? Чёт ты загнул бротишка.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #10 Ответы: #25

22. Сообщение от Аноним (22), 19-Фев-21, 10:55   +/
Не в нём, а в модуле ctypes. Переписать модуль на Rust? Так он же, всё равно, должен вызывать сишные функции.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3 Ответы: #101

23. Сообщение от Аноним (21), 19-Фев-21, 10:55   +/
Не работает что-то. И тут я обратил внимание, что у меня есть только 3.8.8rc1 с 3.9.2rc1 и собраны они с _FORTIFY_SOURCE. Мде, надеялся увидеть сегфолт в питоне (хоть и сишный).
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #66

24. Сообщение от _ (??), 19-Фев-21, 11:05   +/
Надо было юзать https://github.com/RustPython/RustPython
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3 Ответы: #102

25. Сообщение от Аноним (-), 19-Фев-21, 11:08   +1 +/
петон и хруст он имел в виду, ты на столько туп что этого не понял лол
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #21 Ответы: #29

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

27. Сообщение от Чебур (?), 19-Фев-21, 11:16   +/
А что в этом плохого, куча языков его использует?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #15 Ответы: #31, #40

28. Сообщение от Fracta1L (ok), 19-Фев-21, 11:17   –1 +/
Он имел в виду свою обидку из-за жжения в попе оттого что не смог осилить Раст
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #26

29. Сообщение от Аноним (21), 19-Фев-21, 11:22   +/
Я не верю, что он мог быть настолько туп, чтобы иметь в виду это.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #25

30. Сообщение от Mimemail (ok), 19-Фев-21, 11:27   +1 +/
Чуть более близкие к жизни print(x), str(x) и f'x: {x}'  приводят к тому же результату.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #12 Ответы: #43

31. Сообщение от Аноним (31), 19-Фев-21, 11:36   +1 +/
Обычно джит рантаймы принято ругать за то, что им нужна память, помеченная сразу на запись и исполнение, несекурно!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #27

32. Сообщение от alex312 (?), 19-Фев-21, 11:38   +1 +/
похоже ты здесь недавно и не знаешь всех поциентов "в лицо" :)

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #13

33. Сообщение от Аноним (33), 19-Фев-21, 11:46   +/
Под гентой не воспроизводится. Причём ни на втором, ни на третьем пайтоне.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #35

34. Сообщение от Аноним (34), 19-Фев-21, 11:56   +/
пишет "*** buffer overflow detected ***: python2 terminated"
это плохо или хорошо?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #36

35. Сообщение от Аноним (33), 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 символов.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #33 Ответы: #37

36. Сообщение от Аноним (33), 19-Фев-21, 12:01   +1 +/
Это fortify source - хорошо. Переполнение буфера задетектилось и эксплойт запустить не получится, процесс самоликвидируется.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #34

37. Сообщение от Аноним (37), 19-Фев-21, 12:11   –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)

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #35 Ответы: #42

38. Сообщение от заминированный тапок (ok), 19-Фев-21, 12:15   –1 +/
> Питон -- это попытка исправить дыры Си.

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #13 Ответы: #47

40. Сообщение от Аноним (-), 19-Фев-21, 12:28   –2 +/
1) W^X не работает.
2) Сгенерить оптимизированный код - проц жрет, внезапно! С компилируемым то яп это было где-то там, на билдферме, 1 раз на всю толпу. А вот так это уже у вас, локально, в процессе работы. Так что питоннетормозит, но проца и оперативки все же докупите, да?!
3) А, и кодогенератор, конечно, тоже припереть придется. И таскать его везде где хочется это втулить.
4) Кстати, сколько процессорных архитектур это все поддерживает, например? А то скриптовый язык прибитый на гвозди к полутора процовым архитектурам выглядит особенно издевательски. JS, кстати, примерно вот таким и получился.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #27

41. Сообщение от Аноним (-), 19-Фев-21, 12:29   –1 +/
> ну ясно

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #4

42. Сообщение от Аноним (-), 19-Фев-21, 12:30   +/
> *** buffer overflow detected ***: terminated

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #37

43. Сообщение от Аноним (12), 19-Фев-21, 12:40   +1 +/
Зачем выводить промежуточные представления, предназначенные исключительно для передачи в сишные дыре^wфункции?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #30 Ответы: #54

44. Сообщение от Аноним (44), 19-Фев-21, 12:44   –4 +/
> Проблема также затрагивает ветки Python 3.8 и 3.9, но обновления для них пока находятся в состоянии

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

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #46

45. Сообщение от oneMetr (?), 19-Фев-21, 12:56   –1 +/
Ошибку поправили в С или в pyton?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #8 Ответы: #63

46. Сообщение от Аноним (46), 19-Фев-21, 13:00   +8 +/
Ну всё валим на джаваскрипт там безопасность из npm прям так и сочится.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #44 Ответы: #49

47. Сообщение от Аноним (47), 19-Фев-21, 13:06   +/
>  "марсоход perseverance - это попытка исправить недочёты автомата Калашникова"

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #38

48. Сообщение от Аноним (48), 19-Фев-21, 13:34   –3 +/
Хрустеры вообще умеют только хайповать. Блин, половина то и программировать кажется не умеет. Теоретически-крутые программисты :)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #17

49. Сообщение от Аноним (48), 19-Фев-21, 13:36   –2 +/
А вы пробовали там 1e300 посчитать? Я не уверен что у вебмакак хватает фантазии на такие вычисления, они все же не те ботаны лабораторные :)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #46 Ответы: #104

50. Сообщение от Страдивариус (?), 19-Фев-21, 13:59   +/
Почему до сих пор нет камента о том, что нужно переписать пихтон на хруст?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #79, #92

51. Сообщение от Аноним (-), 19-Фев-21, 14:18   –1 +/
Надо Python пеерписать на Rust-е? что б такого не происходило.
А да, и Rust надо переписать на исправленном Python-е, ну так для профилактики чиста.
Ответить | Правка | Наверх | Cообщить модератору

52. Сообщение от еман (?), 19-Фев-21, 14:28   +/
перепесать на Rust/Go/D - делов то
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #62

53. Сообщение от anonymous (??), 19-Фев-21, 15:56   +/
подтверждаю, на манджаре питон крашится, и даже без точек с запятой в конце строк
> import ctypes;
> x = ctypes.c_double.from_param(1e300);
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #81

54. Сообщение от userd (ok), 19-Фев-21, 16:11   +/
для отладки, например.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #43 Ответы: #65

62. Сообщение от Аноним (62), 19-Фев-21, 17:36   –2 +/
Облом состоит в том что они ... толком не умеют к другим ЯП интерфейситься! В лучшем случае - вывесят сишный :D :D :D интерфейс, как единственное что раально подключить. А теперь вопрос на засыпку: как это сделать safe? :P
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #52 Ответы: #64, #68

63. Сообщение от Аноним (-), 19-Фев-21, 17:53   +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(слишком_маленький_буфер,...)!


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #45

64. Сообщение от Аноним (-), 19-Фев-21, 18:02   +/
> Облом состоит в том что они ... толком не умеют к другим ЯП интерфейситься! В лучшем случае - вывесят сишный :D :D :D

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


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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #62 Ответы: #75

65. Сообщение от Аноним (12), 19-Фев-21, 18:29   +/
если только для отладки самих ctypes
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #54

66. Сообщение от userd (ok), 19-Фев-21, 18:49   +/
> надеялся увидеть сегфолт в питоне (хоть и сишный).

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #23

67. Сообщение от Аноним (-), 19-Фев-21, 19:06   +5 +/
Для тех кто в танке. Виноваты питонисты, которые не умеют работать с функциями чистого Си.

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

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #69, #93

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #62 Ответы: #70, #76

69. Сообщение от Аноним (69), 19-Фев-21, 19:33   +2 +/
Ждем четверку. Для несовместимости можно использовать уже три пробела, бы... "программисты пехтона" найдут этому применение и скажут так даже лучше и красивее и подложат это несчастным пользователям.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #67 Ответы: #78

70. Сообщение от Аноним (-), 19-Фев-21, 19:38   +/
> твой облом состоит в том, что у всех этих языков отличное взаимодействие
> с C/C++, ну и с питоном

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #68

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

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

Ответить | Правка | Наверх | Cообщить модератору

72. Сообщение от Плохой Танцор (?), 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
Аварийный останов

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #77

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

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

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #74, #86, #90

74. Сообщение от Аноним (-), 19-Фев-21, 22:10   +/
> О%ели чтоли столько времени тянуть с фиксом уязвимости?

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #73 Ответы: #84, #89

75. Сообщение от Аноним (-), 19-Фев-21, 22:14   –2 +/
> https://doc.rust-lang.org/std/ffi/index.html

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #64 Ответы: #85

76. Сообщение от Аноним (-), 19-Фев-21, 22:15   –4 +/
> твой облом состоит в том, что у всех этих языков отличное взаимодействие
> с C/C++, ну и с питоном

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #68 Ответы: #88, #96

77. Сообщение от Аноним (-), 19-Фев-21, 22:17   +1 +/
[quote]
$ python
bash: python: command not found
[/quote]
Так эффективнее :)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #72 Ответы: #80

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #69

79. Сообщение от Наноним (?), 19-Фев-21, 22:31   –1 +/
Надо переписать всё что написано на Питоне на Rust
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #50 Ответы: #83

80. Сообщение от Плохой Танцор (?), 19-Фев-21, 22:51   +/
> bash: python: command not found

А смысл?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #77

81. Сообщение от Плохой Танцор (?), 19-Фев-21, 22:59   +1 +/
> и даже без точек с запятой

Щито?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #53

82. Сообщение от Аноним (82), 19-Фев-21, 23:03   –1 +/
Ты не поверишь, но его эталонная реализация написана на С.
Какие там ещё дыры должны быть? JAVA-вские? :)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3

83. Сообщение от Аноним (82), 19-Фев-21, 23:04   +1 +/
Rust'о-писалка отвалится :)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #79

84. Сообщение от Аноним (82), 19-Фев-21, 23:07   +/
> бб может патчить свое ископаемое сам

ББ? Bridge Baby?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #74

85. Сообщение от Аноним (85), 19-Фев-21, 23:13   +1 +/
> Дык, блин, экспертус-анонистус, там в обратную сторону надо. Объяснить пихону как поюзать этот твой хруст.

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

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

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

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

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

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

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

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #75

86. Сообщение от userd (ok), 20-Фев-21, 00:38   –1 +/
Дружище,
обнаруженная ошибка досадна, но как мне кажется проявляться должна крайне редко.
Если не затруднит - напишите как можно эксплуатировать эту уязвимость.
Мне вот слабо придумать, а Вы, вероятно, уже придумали - оттого и негодуете?

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #73

87. Сообщение от Аноним (87), 20-Фев-21, 02:04   +1 +/
И где бан, модератор?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3

88. Сообщение от Аноним (88), 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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #76 Ответы: #97

89. Сообщение от б.б. (?), 20-Фев-21, 10:14   –1 +/
Я ctypes не использую
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #74

90. Сообщение от б.б. (?), 20-Фев-21, 10:15   –1 +/
И ещё, патчи бывают и вне апстрима
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #73

91. Сообщение от Аноним (91), 20-Фев-21, 10:54   +/
Всем кто не в курсе. Питон на расте уже существует.
https://github.com/RustPython/RustPython
И да там нет ctypes на данный момент, так что код из примера не запустится :)
Ответить | Правка | Наверх | Cообщить модератору

92. Сообщение от Аноним (92), 20-Фев-21, 11:05   +/
Лови
https://github.com/RustPython/RustPython
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #50

93. Сообщение от Ф1 (?), 20-Фев-21, 13:23   –1 +/
>Для тех кто в танке. Виноваты питонисты, которые не умеют работать с функциями чистого Си.

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #67

94. Сообщение от Ilya Indigo (ok), 20-Фев-21, 14:10   –1 +/
> В RHEL уязвимость не проявляется из-за сборки пакетов в режиме FORTIFY_SOURCE, блокирующем подобные переполнения буфера в строковых функциях.

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

Ответить | Правка | Наверх | Cообщить модератору

95. Сообщение от Чел (?), 20-Фев-21, 15:21   +/
Какие еще дыры Си? В данном случае у Си все хорошо. Это проблемы той макаки, которая писала CPython.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #13

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #76

97. Сообщение от Аноним (-), 20-Фев-21, 18:29   –2 +/
Безопасно, кучу пайпов чтобы попить смузи
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #88 Ответы: #98

98. Сообщение от Аноним (-), 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 и прочих "супертехнологий", конечно виднее.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #97 Ответы: #99

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

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


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #98

100. Сообщение от vantoo (ok), 20-Фев-21, 21:26   +/
> зашёл почитать дельные, толковые комментарии

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #17

101. Сообщение от Аноним (101), 23-Фев-21, 22:46   –2 +/
Раст нужен для того, чтобы вызывать unsafe (C|asm)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #22

102. Сообщение от Аноним (101), 23-Фев-21, 22:54   –2 +/
Дважды тормознутый?!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #24

103. Сообщение от Здрасьте (?), 24-Фев-21, 20:55   –1 +/
Это не Пайтон, это расширение (модуль).
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3

104. Сообщение от тер (?), 07-Ноя-23, 08:18   +/
1e16 там максимум
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #49


Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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

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