Профиль: Аноним (вход | регистрация) неRU opennet.me  
OpenNET

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

Уязвимость в Ruby, эксплуатируемая для удалённого выполнения кода в GitLab

26.10.2026 09:57 (MSK)

Опубликованы корректирующие выпуски языка программирования Ruby 3.3.13, 3.4.12 и 4.0.9, в которых устранена критическая уязвимость (CVE-2026-110264), приводящая к целочисленному переполнению при компиляции специально оформленных регулярных выражений. Уязвимость может использоваться для атаки на проекты, написанные на языке Ruby и использующие внешние данные в регулярных выражениях. Среди прочего, подтверждена возможность эксплуатации уязвимости для удалённого выполнения кода в платформе совместной разработки GitLab. Проблема дополнительно блокирована в обновлениях GitLab 19.5.1, 19.4.3, 19.3.6, 19.2.9, 19.1.9, 19.0.10 и 18.11.13. Уязвимости присвоен уровень опасности 10 из 10.

Уязвимость присутствует в движке регулярных выражений Onigmo и приводит к переполнению внутренних идентификаторов при компиляции шаблона с большим числом повторов. Проблема проявляется только в приложениях, использующих внешние данные в регулярных выражениях, обрабатываемых через методы Regexp.new, Regexp.union и Regexp.compile или литералы вида "/#{input}/". Ограничение размера регулярного выражения или времени его обработки через метод Regexp.timeout не блокирует уязвимость, так как для атаки могут использоваться короткие шаблоны.

В GitLab уязвимость может быть эксплуатирована неаутентифицированным пользователем из-за подстановки в регулярное выражение внешних данных. Детали метода эксплуатации пока не раскрываются (по правилам GitLab информация становится доступна спустя 30 дней после публикации исправления), при этом в сети уже фиксируются попытки осуществления атак на пользователей GitLab. Косвенными признаками осуществления атаки может служить увеличение числа аварийных завершений интерпретатора Ruby и рост ошибок в логах, связанных с истечением таймаута на отрисовку страницы при обработке org-файлов.

Помимо CVE-2026-110264 в движке регулярных выражений устранены ещё три уязвимости: CVE-2026-89078 (двойное освобождение памяти при невозможности парсинга шаблона после его изменения), CVE-2026-93577 и CVE-2026-97229 (целочисленные переполнения при расчёте размера компилируемого шаблона).

  1. Главная ссылка к новости (http://www.ruby-lang.org/en/ne...)
  2. OpenNews: Опубликован язык программирования Ruby 4.0
  3. OpenNews: Уязвимость в GitLab, допускающая удалённое выполнение кода (доступен эксплоит)
  4. OpenNews: Уязвимость в RubyGems.org, позволяющая подменить чужие пакеты
  5. OpenNews: Уязвимость в Ruby-SAML, позволяющая обойти аутентификацию в GitLab
  6. OpenNews: Уязвимость в библиотеке ruby-saml, приводящая к обходу аутентификации в GitLab
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/66549-ruby
Ключевые слова: ruby, gitlab
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (130) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.3, FSA (ok), 10:58, 26/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +7 +/–
    Забавно. Где-то была диаграмма популярности языков для веба. На первом месте был PHP с 70%. А на втором Ruby. Но когда нашли уязвимость в PHP - все стояли на ушах. А тут вообще всем пофигу :-D
     
     
  • 2.14, Аноним (14), 11:32, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • +8 +/–
    А когда найдут дырень в расте, все скажут "да ладно, это вообще ерунда о которой даже думать не надо!"
     
     
  • 3.38, Смузихеб забывший пароль (?), 13:31, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/–
    и вообще, это не дырень, так и задуманное отверстие безо всяких UB
     
     
  • 4.75, aname (ok), 17:27, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/–
    Безопастное!
     
  • 3.46, Анонимный аноним (?), 15:02, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/–
    Ты можешь увидеть разницу между интерпретатором и статическим скомпилированным бинарником?
     
  • 3.55, Гость (??), 15:35, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    дыры в расте будут без переполнений, качественные дыры, одобренные компилятором и прокладкой между стулом и клавиатурой.
     
     
  • 4.137, Аноним (137), 06:29, 27/10/2026 Скрыто ботом-модератором     [к модератору]
  • +/–
     
  • 3.76, xPhoenix (ok), 17:28, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/–
    Когда найдут, тогда и поговорим.
     
     
  • 4.146, Аноним (14), 10:59, 27/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    https://www.opennet.dev/opennews/art.shtml?num=66555
     
  • 2.32, Аноним (32), 13:03, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • +5 +/–
    да просто немного найдется проектов, которые позволяют выполнять регулярное выражение, полученное из пользовательского ввода
     
  • 2.45, опеншлёпивпродакшн (?), 14:41, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Самый популярный язык PHP, а не Python. И мы все это прекрасно понимаем.
     
  • 2.89, Аноним (89), 20:09, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/–
    Потому что в случае с PHP дырявыми оказались все сайты, а тут с условиями
     
  • 2.95, Ivan_83 (ok), 20:56, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/–
    Это всё потому что на одном итальянском ресурсе про IT давно обстебали рубистов по самое немогу, дальше уже стебать стрёмно - как в 101 раз добивать мёртвого :)
     
     
  • 3.101, Аноним (101), 21:04, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/–
    > Это всё потому что на одном итальянском ресурсе про IT

    О, это великое итальянское IT!

    > давно обстебали рубистов по самое немогу, дальше уже стебать стрёмно

    Они поделились достижениями Италии в IT? Ну кроме изобретения лапше-кода?

     
     
  • 4.102, Ivan_83 (ok), 21:06, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Если вы не знаете про какой ресурс речь то разумнее было бы промолчать, для знающих о чём речь ваш наброс - сплошные лулзы.
     

  • 1.4, Аноним (4), 11:02, 26/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/–
    > if ((MemNumType)reg->num_null_check <= 0) return ONIGERR_TOO_MANY_NULL_CHECK;
    > if ((MemNumType)reg->num_repeat <= 0) return ONIGERR_TOO_MANY_RANGE_REPEAT;

    Бугуга! У этих гениев "количество попыток" - ЗНАКОВОЕ число.
    *лавров.jpeg*

    Ну а про то, что исправление файлике regcomp.c...
    "никогда такого не было и вот опять" (с)

    github.com/ruby/ruby/commit/63eda2681e24cdf9fbe45fdd8a3d8866f4f59878#diff-5185ea260e3b3fe88f7d8135f97e84c3c9e9f5827457e2252d5e378323dcdd2a

     
  • 1.5, Аноним (5), 11:08, 26/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/–
    ONIGERR_TOO_MANY_NULL_CHECK  - по моему тут опечатка в коде
     
     
  • 2.7, Аноним (7), 11:16, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Борьба с master/slave продолжается.
     
  • 2.9, Аноним (9), 11:19, 26/10/2026 Скрыто ботом-модератором     [к модератору]
  • +1 +/–
     
  • 2.17, Жироватт (ok), 11:47, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • +4 +/–
    NIGGER_NIGGA_NIGGA_TOO_MANY_NULL_CHECK
    Поправил
     
  • 2.50, Аноним (50), 15:23, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    R лишняя и пропущена H после O.
     
  • 2.62, Инопланетянин (?), 16:25, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    > ONIGERR_TOO_MANY_NULL_CHECK  - по моему тут опечатка в коде

    Японцы же.

     

  • 1.6, Аноним (7), 11:13, 26/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/–
    > GitLab для удалённого выполнения кода в Ruby.

    Поправил.

     
  • 1.8, Аноним (9), 11:18, 26/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –10 +/–
    > двойное освобождение памяти
    > целочисленные переполнения

    и RCE 10 из 10 как вишенка на тортике сишного булщит бинго в безопасном руби))

    "С in CVE stands for C language" (c)

     
     
  • 2.19, Аноним (19), 11:54, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/–
    Т.е. в том что динамический ЯП со сборщиком мусора дырявый виноват Си? А если в расте будет бага, это виноват С++ потому что LLVM написан на нем?
     
     
  • 3.25, Аноним (25), 12:09, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    > Т.е. в том что динамический ЯП со сборщиком мусора дырявый виноват Си?

    Кто же интересно дожен быть виноват, если исправления в onigmo.h, regcomp.c и regerror.c?
    В динамический ЯП со сборщиком мусора или в убогом недоязычке?

    > А если в расте будет бага, это виноват С++ потому что LLVM написан на нем?

    rustc написан на расте. Если бага будет там - то виноват раст.
    Если в LLVM - то с++.

     
     
  • 4.42, Аноним (42), 14:11, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/–
    >Кто же интересно дожен быть виноват, если исправления в onigmo.h, regcomp.c и regerror.c?

    А если были бы исправления в файлах .rs?

     
  • 4.44, oneMetr (?), 14:30, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Прлшу простить за офтопик, не смог удержаться
    Вас заминусовали, фактически, за конструкцию
    switch (<где нужно поправить>) {
    case "*.h", ".c":
      return "C"
    case "*.rs":
      return "Rust"
    }

    Лучшее за сегодня! Ищем не там где потеряли...

     
     
  • 5.51, Аноним (51), 15:25, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/–
    > Прлшу простить за офтопик, не смог удержаться
    > Вас заминусовали, фактически, за конструкцию

    Я совершенно не обижаюсь, не все ж на сайте программисты.
    Думаю тут полно кодеров, админов, и другого обслуживающего персонала, типа уборщиков.

    Да и свитч в сишке страдает от Fall-through - в С23 пришлось чинить костылями (атрибут [[fallthrough]]).
    Но я сомневаюсь, что местные СИшники вообще стандарт читали 😁

     
     
  • 6.93, _ (??), 20:48, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Ваши "программисты" последнюю лошадь в овраге доедают :)
    Замена их ИИ - факт свершившийся. Правда равно как и: "кодеров, админов, и другого" ...
    А вот уборщиков - хренЪ!, ЫЫ ещё долго не заменит. Вы ещё на их зарплату в овраге посидите ...
     
     
  • 7.94, Аноним (101), 20:56, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    > Ваши "программисты" последнюю лошадь в овраге доедают :)

    Казахи что ли?

    > Замена их ИИ - факт свершившийся. Правда равно как и: "кодеров, админов, и другого" ...

    Настолько свершившийся что HRюши ищут "девелоперов которые умеют работать с ИИ"))

    > А вот уборщиков - хренЪ!, ЫЫ ещё долго не заменит.

    Мой робот пылесос смотрит на твое сообщение скептически, хитро прищурив лидар.

    > Вы ещё на их зарплату в овраге посидите ...

    Ути бозе, как страшно!


     
  • 4.123, Аноним (123), 00:00, 27/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Если пишущий считает, что количество попыток это знаковое целое, то в этом тоже виноват ЯП Си? Обработка количества ошибок проходит сумматор. Если на вход подать отрицательное целое, это уже не увеличение количества попыток, а уменьшение. В этом виноват сумматор или тот, кто неправильно выбрал тип?
     
  • 4.124, Аноним (123), 00:04, 27/10/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/–
    Контроль переполнения лежит на программисте, а не ЯП.
    В Rust тоже будет пофику, если выбрать соответствующий тип. То что Си не "кричит" как Rust это на умного рассчитано.
     
  • 3.58, Аноним (58), 15:48, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/–
    Это даже интересно, как ты в расте добьешься cve из новости.
     
     
  • 4.59, Аноним (-), 15:53, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/–
    > Это даже интересно, как ты в расте добьешься cve из новости.

    Если сильно постараться - думаю возможно.
    Например завернуть все в unsafe ибо "чего там коньпилятор мне указывает".

    Тут любят вспоминать Speykious и cve-rs
    Пришлось всего лишь найти баг в компиляторе и сделать кастомную реисплементацию mem::transmute и std::ptr::null()

     

  • 1.12, Аноним (12), 11:27, 26/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/–
    > int num_repeat;                /* OP_REPEAT/OP_REPEAT_NG id-counter */
    > int num_null_check;            /* OP_NULL_CHECK_START/END id counter */

    А кто-то может пояснить, почему счетчики сделаны int, а не unsigned int как это сделано несколькими строчками ниже?

    В чем был хитрый план? Прокидывать ошибки через отрицательные значения?

     
     
  • 2.16, Аноним (16), 11:42, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Да, в убогих недо-язычках из 70х нет нормального средства передачи ошибок.
    Поэтому приходится нарушать "применение типов" и лепить типы данных которые избыточны.

    В одной из недавних дыреней в libxml2 (после которой гугл выкинул ее их хрома), для размера рассчитываемого буфера использовали signed переменную.
    Чтобы функция могла вернуть ошибку -1.

    Ну а так как каст таких типов происходит неявно - то вот и читаем регулярно про очередную дыру.

     
     
  • 3.18, Аноним (7), 11:48, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • –2 +/–
    Го сейчас напряглось, идеоматически.
     
     
  • 4.23, Аноним (23), 12:04, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • +3 +/–
    > Го сейчас напряглось, идеоматически.

    У Го как бы есть тип error.
    И прям в официальном примере есть как его использоваться

    func Open(name string) (file *File, err error)
    f, err := os.Open("filename.ext")

     
     
  • 5.31, Аноним (5), 12:53, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/–
    а что ж ты не упомянут if err != nil в следующей строке, которая всем мозолит глаза )
     
     
  • 6.41, Аноним (41), 13:40, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/–
    > а что ж ты не упомянут if err != nil в следующей строке, которая всем мозолит глаза )

    Эти все с вами в одной комнате?)
    Может кому-то и мозолит, зато тут есть отдельно f, а отдельно err.
    И не нужно запихивать в f -1 чтобы вернуть ошибку.

     
  • 6.53, Аноним (53), 15:30, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    > if err != nil в следующей строке

    И чем это отличается от проверки результата на минус в обычных программах?

     
     
  • 7.61, Аноним (61), 16:11, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/–
    > И чем это отличается от проверки результата на минус в обычных программах?

    Как минимум тем что не нужен избыточный тип.
    В сишке в ошибке выше понадобился signed int, хоть по логике должен быть unsigned.

    Плюс в го ошибка это всего лишь интерфейс. Они может любую дополнительную информацию.

     
     
  • 8.116, Ivan_83 (ok), 22:56, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Я не понимаю с чего вы взяли что в С вам кто то что то должен Каждая программа ... текст свёрнут, показать
     
  • 5.37, Аноним (7), 13:25, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    В си тоже можно передать указатель, куда функция запишет код ошибки.
     
     
  • 6.49, Аноним (51), 15:20, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/–
    > В си тоже можно передать указатель, куда функция запишет код ошибки.

    Можно, а зачем? (с)

    То что не является частью языка мало кто будет делать.
    В языке должны быть удобные механизмы, а не "придумай свой велосипед".
    Но так как мы говорим про ЯП в котором булл добавили спустя 50 лет...

    Я не видел какой-то общепринятой техники-паттерна.
    Если у вас есть примеры, готов их рассмотреть.

     
     
  • 7.108, _ (??), 21:50, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/–
    > Но так как мы говорим про ЯП в котором булл добавили спустя 50 лет...

    Причём - зря!
    Впрочем добавили туда много вовна, благодаря стараниям вот таких ******, а ведь был когда-то лучшим "портабельным ассемблером высокого уровня"(С), а теперь вот - булль ... покажешь мне такой тип данных на х86\ч64... "Ой!" да? :-)

     
     
  • 8.114, Ivan_83 (ok), 22:52, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/–
    Технически в процессорах есть флаги это таки bool Но на практике оно в основном... текст свёрнут, показать
     
  • 7.115, Ivan_83 (ok), 22:53, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Вы зачем то пытаетесь С натянуть на свой квадратно-гнездовой раст или другой подобный ЯП, мысль о том что оно и не должно вас почему то не посещает.
     
  • 3.20, Аноним (19), 11:55, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    > Да, в убогих недо-язычках из 70х нет нормального средства передачи ошибок.

    А нормальные это какие? Можешь показать пример?

     
     
  • 4.24, Аноним (5), 12:07, 26/10/2026 Скрыто ботом-модератором     [к модератору]
  • +/–
     
     
  • 5.27, Аноним (19), 12:27, 26/10/2026 Скрыто ботом-модератором     [к модератору]
  • +/–
     
  • 4.28, Аноним (-), 12:38, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Конечно.
    ADA (и ADA Spark).
    Из известных факапов - только Ариан5.
    И то по причине долбанутости менеджеров "давайте перенесем код без тестирования".

    Из "не языков", а сторонних инструментов - CompCert.
    Компилятор для СИ, сделанный для формальной верификации. Соответствует DAL A – DAL D.
    Из минусов - он не поддерживает стандарт полностью, как и всякие гну-расширения от васянов.
    Ну и не делает агрессивные оптимизации - так что код будет медленнее.

    Но оба эти подхода требуют или перестройку процессов, или глубокое понимание проблемы.
    Т.е для васянов которые решили выпрограммировать очередную поделку не подходят.

     
     
  • 5.35, Аноним (19), 13:21, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    И всё же, как обработка ошибок то там сделана?
     
     
  • 6.40, Аноним (41), 13:38, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/–
    Используются эксепшены.

    Но не такие как в других языках, о чем они явно пишут:
    Ada uses exceptions for error handling. Unlike many other languages, Ada speaks about raising, not throwing, an exception and handling, not catching, an exception.

    learn.adacore.com/courses/intro-to-ada/chapters/exceptions.html

     
     
  • 7.43, Аноним (43), 14:29, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • +3 +/–
    > Но не такие как в других языках, о чем они явно пишут

    Увидел только другую терминологию. В примерах тоже ключевые слова другие, а смысл тот же.

    В чём именно отличие кроме терминологии?

     
     
  • 8.56, Аноним (56), 15:37, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    В с можно throw нуть что угодно, в том числе динамический объект Ада в этом с... текст свёрнут, показать
     
     
  • 9.60, Аноним (60), 16:04, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    То есть исключения в Аде работают как в Яве checked exceptions ... текст свёрнут, показать
     
  • 9.69, Инопланетянин (?), 16:41, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Современный с двигается в сторону отказа от исключений же https en cpprefer... текст свёрнут, показать
     
     
  • 10.73, Аноним (73), 17:13, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Современный с двигается в сторону отказа от исключений же Нет expected Э... текст свёрнут, показать
     
     
  • 11.74, Инопланетянин (?), 17:17, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Исключений не отменяют, но с введением expected, все больше библиотек будут пере... текст свёрнут, показать
     
     
  • 12.78, Аноним (78), 17:41, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/–
    Это понятно почему выброс исключения в каком-нибудь одном потоке роняет всё при... текст свёрнут, показать
     
  • 6.52, Аноним (-), 15:28, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    > И всё же, как обработка ошибок то там сделана?

    В ада Raising Exceptions/Handling Blocks.
    Более того есть встроенный в язык набор predefined exceptions - программисту не нужно велосипедить.

    ps неужели это так сложно загуглить

     
     
  • 7.54, Аноним (53), 15:32, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Всё прям как в Паскале.
     
     
  • 8.57, Аноним (-), 15:38, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Ты когда-то слышал в либе на паскале нашли дырень и пол интернета в опасности, ... текст свёрнут, показать
     
     
  • 9.120, _ (??), 23:41, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/–
    А так трудно понять что на поцкале перестали писать за ХЗ сколько лет до вот это... текст свёрнут, показать
     
  • 8.70, Инопланетянин (?), 16:43, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Не ври, в ванильном Паскале Вирта не было никаких исключений ... текст свёрнут, показать
     
  • 8.72, Аноним (73), 17:06, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Ада - дальнейшее развитие Паскаля... текст свёрнут, показать
     
     
  • 9.77, Инопланетянин (?), 17:28, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Дальнейшее развитие Паскаля - это Оберон ... текст свёрнут, показать
     
     
  • 10.79, Аноним (78), 17:43, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Оберон - не прямой потомок Паскаля, а через Модула-2 А Ада - прямой потомок ... текст свёрнут, показать
     
  • 7.105, Аноним (105), 21:33, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    И как это в ассемблере выглядит?
     
     
  • 8.121, _ (??), 23:42, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    да как бы там, наверху не изголялись - внизу это всё тот же jmp -D... текст свёрнут, показать
     
  • 3.64, Инопланетянин (?), 16:27, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    > Да, в убогих недо-язычках из 70х нет нормального средства передачи ошибок.

    Кто тебе мешает сделать enum Status для кодов ошибок, а в out-параметре передавать результат?

     
     
  • 4.68, Аноним (68), 16:39, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    > Кто тебе мешает сделать enum Status для кодов ошибок, а в out-параметре передавать результат?

    В теории - ничего,
    на практике - так почти никто не делает.
    Наверное ленятся)

    Кстати енумы в СИшке тоже кастpupoванные.
    Если у тебя есть например enum Status_1 и enum Status_2, то ты их можешь запросто сравнивать.
    Даже если первый статус это "не помер ли сервер", а второй "распарсилась ли строка".

     
     
  • 5.71, Инопланетянин (?), 16:53, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/–
    > В теории - ничего,
    > на практике - так почти никто не делает.
    > Наверное ленятся)

    Да-да, вообще никто

    int pthread_join(pthread_t thread, void **retval);

    от слова совсем https://www.sqlite.org/c3ref/open.html

    int sqlite3_open(
      const char *filename,   /* Database filename (UTF-8) */
      sqlite3 **ppDb          /* OUT: SQLite db handle */
    );

    > Кстати енумы в СИшке тоже кастpupoванные.

    Они не кастрированные - это инты. Каждый школьник это знает.

    Если надо уникальными значениями, то можно с помощью макроса сделать. Да и зачем тебе 100 кодов? Тебе по факту нужен -1. Никто не будет 100 кодов проверять.

     
     
  • 6.85, Аноним (85), 19:35, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    > Они не кастрированные - это инты. Каждый школьник это знает.

    Ну, т.е кастpupoванные инты.
    А если я хочу enum String? Ой, в СИшке и строк нету (а функции для обработки есть)).
    Про ассоциированные значения, методы и тд можно даже не мечтать.

    > Если надо уникальными значениями, то можно с помощью макроса сделать.

    Костыли.

    >  Да и зачем тебе 100 кодов? Тебе по факту нужен -1. Никто не будет 100 кодов проверять.

    Пф, отличная аргументация ограничения)

    Банально чтобы выдать человекочитаемую ошибку.
    Даже в errno больше сотни ошибок, а ты говоришь "никто проверять не будет".

     
     
  • 7.92, Инопланетянин (?), 20:44, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/–
    > Банально чтобы выдать человекочитаемую ошибку.
    > Даже в errno больше сотни ошибок, а ты говоришь "никто проверять не
    > будет".

    errno - это считай один enum на все вызовы. Если говорить, про конкретный вызов, то у тебя вряд ли будет даже больше 5 кодов там. Это крайне редкая ситуация будет. К слову вот реальный пример из недавней новости https://www.brotli.org/decode.html#a87f

     
     
  • 8.99, Аноним (101), 21:01, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/–
    Да, но он не фиксированный 5 больше одного варианта из -1 в пять раз внезапн... текст свёрнут, показать
     
     
  • 9.106, Инопланетянин (?), 21:44, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/–
    Он наоборот фиксированный Не понял Не возвращай несуществующую ошибку Что бу... текст свёрнут, показать
     
  • 7.98, Ivan_83 (ok), 21:00, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/–
    То что вы хотите всякую хрень которая в процессоре не предусмотрена, и от того в С её аналогов не втащили - это ваша личная трагедия.
     
  • 7.129, Инопланетянин (?), 00:26, 27/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    >> Если надо уникальными значениями, то можно с помощью макроса сделать.
    > Костыли.

    Ну такой дизайн. Ты хочешь ADT? Не завезли, но это не значит, что нельзя писать. Можно, конечно. Плюсы тоже есть: простота.

     
  • 5.97, Ivan_83 (ok), 20:58, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/–
    Енумы нафик не упали, если честно. Это для грамарнаци из других языков интересно.
     
     
  • 6.100, Аноним (101), 21:02, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/–
    > Енумы нафик не упали, если честно.

    Твое мнение если честно тоже.

    > Это для грамарнаци из других языков интересно.

    Ну, т.е для тех кто выкидывает сишный код и заменяет на более нормальные ЯП.


     
     
  • 7.103, Ivan_83 (ok), 21:08, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Много назаменяли?
     
  • 6.125, Аноним (123), 00:13, 27/10/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/–
    >Енумы нафик не упали, если честно.

    Ну вообще то, это ограничивает природу (множество значений) сущности и упрощает восприятие.

     
     
  • 7.131, Ivan_83 (ok), 01:17, 27/10/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/–
    Звучит как борьба за то чтобы сузить взгляд, уменьшить возможности и стать глупее :)

    Я вот ни разу не видел чтобы enum что то там упрощал именно для человека.
    Это в чистом виде синтаксический сахар, который единственное для чего годен - чтобы компелятор мог сказать: у тебя тут в свиче не все варианты описаны и нефиг сувать сюда в аргумент/переменную число, суй значение из енума.

    При этом использование enum иногда само по себе привносит баги.
    Был у нас код с enum, всё хорошо работало.
    Потом этот enum расширили, потестили - вроде всё ок. А потом пришёл регресс: оно значение из енума писало в базу. Программист посмотрел на енум и по смыслу то что он добавлял он добавил в середину енума потому что там как раз сходное смысловое было.
    А при чтении из базы оказалось что нумера то съехали и добавлять надо было или не в середину или ручками каждому значению енума номер фиксировать.
    Короче такой вот error prone дизайн.
    Этого можно было избежать если бы enum жёстко требовал задавать значения всех элементов, как это в случае с define.

    Есть и другие не удобства у ним.
    Когда у тебя enum внутри модуля а значение тебе надо отдать наружу или забрать извне, то приходится городить уродский большой геттер/сеттер или тупо забить и скастовать тип.

    Поэтому я бы сказал что в целом от enum пользу никакой нет и больше неудобств.

     
     
  • 8.135, Аноним (123), 01:44, 27/10/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/–
    Зачем придумали символы имена функций, переменных и т д пользовались бы сразу ... текст свёрнут, показать
     
     
  • 9.138, Ivan_83 (ok), 06:32, 27/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Да вообще то и пользовались, только не адресами а номерами строк как меткой для ... текст свёрнут, показать
     
  • 8.144, Аноним (144), 08:28, 27/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Ага, и светофоры для водителей поставили что сузить взгляд, уменьшить возможнос... большой текст свёрнут, показать
     
     
  • 9.149, Ivan_83 (ok), 17:07, 27/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Я не полезу в код чтобы смотреть почему Когда у тебя портянка define - там ср... текст свёрнут, показать
     
  • 4.96, Ivan_83 (ok), 20:58, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/–
    Так сидите в своей джаве и ловите просадку х100 на каждой ошибке.
     
     
  • 5.109, Инопланетянин (?), 21:58, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    > Так сидите в своей джаве и ловите просадку х100 на каждой ошибке.

    Причем тут джава? Так делает много кто. Вот, например, https://www.sqlite.org/rescode.html
    Про какую просадку ты говоришь?

     
     
  • 6.113, Ivan_83 (ok), 22:49, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/–
    Пардон, кажется я должен был выше по ветке написать :)

    Просадка это у джавистов когда они на каждый чих эксепены валят.

     
     
  • 7.126, Аноним (123), 00:16, 27/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    >на каждый чих эксепены валят.

    Вообще, это тип и контракт.  

     
     
  • 8.132, Ivan_83 (ok), 01:18, 27/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Да да, и по этому контракту производительность катастрафически падает на каждой ... текст свёрнут, показать
     
     
  • 9.136, Аноним (123), 01:47, 27/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    - Ошибки должны быть редки - Ошибки данных должны отсеиваться там, где нет про... текст свёрнут, показать
     
     
  • 10.139, Ivan_83 (ok), 06:33, 27/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Кому вы рассказываете Заходишь в этот ваш андройд, а там сплошные бэктрейсы от ... текст свёрнут, показать
     
  • 7.151, Инопланетянин (?), 18:00, 27/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    > Пардон, кажется я должен был выше по ветке написать :)
    > Просадка это у джавистов когда они на каждый чих эксепены валят.

    Про яву не скажу, но вообще exception это tradeoff. Когда их нет, вмысле их никто не кидает, то это наоборот ничего не стоит.

     
  • 3.66, Инопланетянин (?), 16:32, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    > Да, в убогих недо-язычках из 70х нет нормального средства передачи ошибок.

    https://en.wikipedia.org/wiki/Errno.h

     
  • 2.65, Инопланетянин (?), 16:30, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    1. Потому что размера хватает.
    2. Чтобы не возиться с проблемами unsinged в циклах.

    Мое мнение, код не читал.

     
     
  • 3.127, Аноним (123), 00:19, 27/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Выше я описал ситуацию, когда на вход сумматора попыток придет законное отрицательное число.
    Виноват будет сумматор?
    Диапазона хватает... Ну и логика выбора типа.
     
  • 2.117, Ivan_83 (ok), 23:02, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Скорее всего потому что либо автор прикинул что там значения влезут в int и в целом ему пофиг какой там тип написать, либо потому что автор дятел который учился по старым книжкам где int на int~е int~ом погоняет.

    К сожалению мукулатуры где сплошные int до сих пор полно и это переиздают.

     

     ....большая нить свёрнута, показать (66)

  • 1.15, Аноним (15), 11:41, 26/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/–
    > Уязвимость в Ruby, эксплуатируемая для удалённого выполнения кода

    Уязвимость в сишной либе, которую по глупости решили использовать рубиты.
    В самом руби в данном случае уязвимости нет, не нужно вводить людей в заблуждение.

     
     
  • 2.84, Аноним (84), 19:34, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Вот Раст например полностью и безоговорочно защищает решительно от всех существующих дыр в любых языках.
     
  • 2.128, Аноним (123), 00:25, 27/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Ruby настолько идеален, что не существует аппаратного Ruby-процессора. И это хорошо для Ruby. Идеальному всегда нужна возможность свалить на исполнителя.
     

  • 1.21, Аноним (21), 11:57, 26/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/–
    Кстати, а что там с актуальностью руби в бэкенде? Он таки смог пережить наплыв ноды и го в rest api или нет?
     
     
  • 2.22, Аноним (5), 12:04, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    большие проекты вроде живут, тот же гитлаб например. но новые думаю никто не начинает уже.
     
  • 2.36, Боевой Петух (?), 13:22, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • +4 +/–
    Старые проекты никуда не делись, а что-то новое вряд ли будут писать на руби.
     
  • 2.39, Смузихеб забывший пароль (?), 13:38, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • –2 +/–
    смотря какой критерий. То что было - то осталось. Но уже много лет никто в здравом уме не будет начинать новый проект бэка на руби
     
  • 2.83, Аноним (84), 19:32, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Главное что он даже сейчас совершенно не актуиален среди работатдателей.
     

  • 1.26, Аноним1234 (?), 12:24, 26/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/–
    Писали бы gitlab на ржавом - не было бы проблем.
     
     
  • 2.29, Аноним (-), 12:40, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Зачем?
    Если в условном ржавом взять такую же СИшную дырявую либу, то результат мог получиться таким же.
    Надеятся что ржа где-то на уровне выше отловит ошибку и брякнется, я бы не стал.

    Вывод должен быть скорее "либы используемые в важных проектах должны писаться с использованием надежных инструментов".
    И ржа далеко не единственный вариант.

     
     
  • 3.81, Аноним (84), 19:30, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Осторожно тут еретик. Он не верит в безопасную и благословенную силу раста.
     
     
  • 4.86, Аноним (85), 19:37, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    С чего ты взял?
    Просто я читал растбук и знаю, что гарантии раста заканчиваются на взаимодействии с дырявыми либами.
    Т.е по хорошему либа тоже должна быть на расте.

    Возможно после такого эпичного обcepa какой-то гугл решит заменить СИшную поделку на раст аналог.
    Как было с либхмл2

     
  • 2.30, пох.. (?), 12:50, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/–
    конечно не было бы - нет кода, нет и проблем.

    Но, кстати, никогда не поздно начать переписывать!

     
  • 2.33, Anon789 (?), 13:07, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/–
    Тем временем uutils/coreutils...
     
     
  • 3.47, Аноним (53), 15:05, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/–
    Доделают сразу после того, как создатели раста смогут допереписать FF?
     
     
  • 4.80, Аноним (80), 19:09, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • +3 +/–
    они заняты переписыванием спецификации языка
     
     
  • 5.130, Инопланетянин (?), 00:29, 27/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    > они заняты переписыванием спецификации языка

    Может скоро и комитет стандартизации завезут)))

     
  • 3.88, пох.. (?), 19:41, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/–
    > Тем временем uutils/coreutils...

    падажити, у нас еще два CVE в sudo-rs не закрытых. (что?! Что слышал. Нишмагли бизапастна. Апять. Сишники небось в штаны нагадили.)

     
     
  • 4.91, Аноним (91), 20:38, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • –4 +/–
    О, а вот и пошел антикриз от дыpявых))

    Особенно забавно видеть подобные всkукаpeки в теме про сишную дырень 10 из 10.
    Да в sudo-rs есть
    CVE-2025-64517 - 4.4
    CVE-2025-46718 - 3.3
    CVE-2025-64170 - 3.8

    Как можно наблюдать то и тут СИшники обганяют растеров - смогли обгадиться гораздо сильнее.

    >  не закрытых.

    Ты уверен?
    Может ссылочкой поделишься?

     
     
  • 5.111, Ivan_83 (ok), 22:38, 26/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Занялись бы чем то полезным чтоли, а то только на CVE и фапаете.
     
     
  • 6.142, Аноним (142), 07:56, 27/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    > Занялись бы чем то полезным чтоли,

    Ой, типа твой коммент сильно полезен.

    И вообще не очень вежливо указывать чем заниматься в свободное от работы время.

    > а то только на CVE и фапаете.

    Если бы это меня не касалось, я бы забил.
    Но в мире когда из-за криворукого монкикодера могут запросто улететь деньги из мобильного банкинга - уже другой коленкор.

     
     
  • 7.150, Ivan_83 (ok), 17:11, 27/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Вашей недалёкости нет предела :)

    Единственная массовая проблема с ИТ за последние лет 5 была из за кривого апдейта антивируса, когда по миру окирпичилась куча инсталляций венды, в банкоматах, аеропортах и прочем.
    Все вместе взятые CVE за последние 5 лет не принесли столько же неудобств.
    Но вы упорно фапаете на никому не интересные проблемы.

     
  • 5.133, пох.. (?), 01:32, 27/10/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/–
    > Особенно забавно видеть подобные всkукаpeки в теме про сишную дырень 10 из 10.

    особенно забавно видеть др04ерство на бессмысленные цифирки и прочие виляния ужом.

    В _языке_программирования_ с кучей сложного рантайма - ну надо же - уязвимость. Правда надо быть полным .... чтобы передавать _регексп_ из внешнего источника в свой код без фильтрации.

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

    > Может ссылочкой поделишься?

    https://ubuntu.com/security/notices/USN-8708-1

    на, беги исправляй. А то ты похоже в 2025м году застрял.
    А CVE для нее нет, потому что зачем же поднимать лишний шум. (и нет, не одна такая)
    А для скольки еще нет и USN - а хз. Потому что темные дела делаются в темноте.

     
     
  • 6.141, Аноним (142), 07:51, 27/10/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/–
    О великий гуру, поделись своей МУДростью и расскажи как же надо оценивать CVE И... большой текст свёрнут, показать
     
     
  • 7.147, пох.. (?), 11:31, 27/10/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/–
    > И много есть примеров ЯП с такими уязвимостями?

    Каждый первый. От php до erlang со всеми остановками. Десятками штук подобные приходят. Не в каждом первом есть встроенные библиотеки для работы с регексами и не на каждом первом умудряются напрямую сплавить туда внешний код.

    >> за год три штуки.
    > Три low штуки.

    в твоих фантазиях.
    И тык мордой в баг 2026го года - опять вызвал только подмену понятий и виляния, уязвимостьниуязвимость и вообщеужепафиксили, быстроподнятое ж не упавшее.

    Ты просто больной фанатик. Сам не написавший даже хеловорда.

     

  • 1.119, Аноним (123), 23:24, 26/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/–
    >В GitLab уязвимость может быть эксплуатирована неаутентифицированным пользователем из-за подстановки в регулярное выражение внешних данных

    Когда это закладывали в систему, то чем думали?
    - Разбор регулярного выражения - сложно предсказуемое действие.
    - В этом непредсказуемом механизме ещё и внешние данные добавим.
    - Внешние данные от неизвестного источника.
    Где была логика?

     
     
  • 2.134, пох.. (?), 01:32, 27/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    > Где была логика?

    не ищите логику у гитляперов. Запускаетсо - в прод!

     

  • 1.145, аниме эксперт (?), 10:39, 27/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/–
    Помню этот язык, в начале 2010-х был на хайпе, товарищ тогда даже мак купил специально для программирования на руби. Мне же оно не зашло, уже тогда была нода жс.
     
     
  • 2.148, пох.. (?), 11:33, 27/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    > Помню этот язык, в начале 2010-х был на хайпе, товарищ тогда даже
    > мак купил специально для программирования на руби. Мне же оно не
    > зашло, уже тогда была нода жс.

    ну так беги обновляй - там какую-то уязвимую брюкву вырастили.
    Причем, в отличие от этого бага, который надо суметь все же извратиться и сделать доступным извне - там прямо в встроенный fetch изначально прям для этого и предназначенный.

     

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



    XSQUARE
    Inferno Solutions
    Hosting by Hoster.ru
    Хоcтинг: