The OpenNET Project / Index page

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

Уязвимость в пакетном менеджере Cargo, применяемом в экосистеме Rust

10.01.2023 21:22

В пакетном менеджере Cargo, применяемом для управления пакетами и сборки проектов на языке Rust, выявлена уязвимость (CVE-2022-46176), допускающая проведение MITM-атаки, позволяющей вклиниться в канал связи с сервером. Уязвимость вызвана отсутствием проверки хостового открытого ключа во время клонирования индексов и зависимостей по SSH, что позволяет перенаправить обращение на подставной сервер при наличии у атакующего возможности перехвата трафика (например, при контроле над беспроводной точкой доступа или компрометации домашнего/офисного маршрутизатора).

Атака может быть совершена в том числе на конфигурации, явно не использующие SSH для обращения к индексам или зависимостям, если в настройках Git разрешена замена HTTPS-соединений к GitHub на SSH (параметр url.<base>.insteadOf), что приводит к клонированию индекса репозитория crates.io по SSH.

Уязвимость устранена в выпуске Rust 1.66.1, в котором была реализована проверка соответствия текущего открытого ключа SSH-сервера ключу, который использовался в прошлых сеансах. В случае изменения ключа в новой версии выводится ошибка из-за подозрения в совершении MITM-атаки. При первом соединении вместо подтверждения подлинности серверного открытого ключа теперь также выводится ошибка с информацией о том как добавить открытый ключ в список ключей, заслуживающих доверия, что может повлиять на работу автоматизированных систем сборки, впервые клонирующих индексы или зависимости с определённого хоста.

  1. Главная ссылка к новости (https://blog.rust-lang.org/202...)
  2. OpenNews: Уязвимости в пакетном менеджере Cargo, применяемом для проектов на языке Rust
  3. OpenNews: Уязвимости в Please, альтернативе sudo, написанной на языке Rust
  4. OpenNews: Уязвимость в сетевых библиотеках языков Rust и Go, позволяющая обойти проверку IP-адресов
  5. OpenNews: Уязвимость в стандартной библиотеке языка Rust
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/58458-cargo
Ключевые слова: cargo, rust
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (115) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.6, Аноним (6), 22:55, 10/01/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +14 +/
    Кажется, к "don't roll your own crypto" надо добавить "don't reimplement SSH clients"
     
     
  • 2.101, ivan_erohin (?), 13:31, 11/01/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    "... and git clients too".

    такой модный язык, а использует наработки старперов. не позорно им ?

     
     
  • 3.149, Аноним (-), 09:31, 12/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Если б они это сами сделали, CVE было бы в 10 раз больше. Вон в матриксе славно похайповали, end-to-end шифрование в дефолтовой их либе вынесли. Такое вот крипто от хипстеров.
     

  • 1.9, Аноним (9), 22:58, 10/01/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > в выпуске Rust 1.66.1

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

     
     
  • 2.13, НяшМяш (ok), 23:17, 10/01/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > выходит новая версия и ломает совместимость со старой

    Экспертиза от опеннет во всей красе.

     
     
  • 3.15, Деанон (?), 23:20, 10/01/2023 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Арчеводы тоже
     
  • 3.17, Аноним (17), 23:31, 10/01/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > теперь также выводится ошибка ... что может повлиять на работу автоматизированных систем сборки
     
     
  • 4.86, НяшМяш (ok), 11:16, 11/01/2023 [^] [^^] [^^^] [ответить]  
  • +4 +/
    А причём тут язык? Так можно и C++ пинать за то что CMake сделал какое-нибудь ломающее изменение.
     
     
  • 5.88, Аноним (88), 11:34, 11/01/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Это к вопросу как растофилы фиксят баги.
     
     
  • 6.97, анон (?), 12:25, 11/01/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Такого вопроса никто никогда не ставил, ты его сам себе придумал.
     
  • 5.105, Аноним (105), 15:04, 11/01/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    CMake не делает ломающих изменений. В CMake есть policy mechanism.

     
  • 5.114, Вы забыли заполнить поле Name (?), 16:27, 11/01/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > CMake сделал какое-нибудь ломающее изменение

    Пример можешь привести?

     
     
  • 6.152, НяшМяш (ok), 11:18, 12/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > Пример можешь привести?

    Пример чисто гипотетический был, но я погуглил - и действительно старое нашлось: https://stackoverflow.com/questions/40915115/cmake-changes-breaking-builds

     
  • 4.96, freecoder (ok), 12:12, 11/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Ну такое нельзя зафиксить так, чтобы это не коснулось конечных пользователей.
     
     
  • 5.102, Аноним (102), 13:52, 11/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    можно, сейчас опеннет эксперты расскажут как.
     
  • 3.108, анон (?), 15:49, 11/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    На этот вопрос так часто тут с пруфами отвечают, что его вырезает антиспам еще на этапе поста.
    Могу порекомендовать почитать мастер ветку с ответами разрабов, в приличном обществе за такие ответы можно потеряться в бочке с бетонном.
     
  • 2.30, Аноним (30), 00:30, 11/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    кто тебе мешает не использовать новую версию?
     
     
  • 3.33, Admino (ok), 01:03, 11/01/2023 [^] [^^] [^^^] [ответить]  
  • +7 +/
    Дырени.
     
  • 3.36, псевдонимус (?), 01:50, 11/01/2023 [^] [^^] [^^^] [ответить]  
  • +7 +/
    Кто мешает не использовать раст?
     
     
  • 4.65, Аноним1212 (?), 07:53, 11/01/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Там же новое!! Это как на телефоне обновление приложения чтобы о нем помнили
     
  • 3.37, Аноним (88), 01:50, 11/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    И сидеть с дырявым карго?
     
     
  • 4.131, Аноним (30), 19:14, 11/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    а зачем тебе cargo?
    люди 20 лет сидят без обновлений на дырявых дельфях, ещё и студентов активно науськивают
     
  • 3.50, Аноним (9), 03:02, 11/01/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Например, программа Х собирается версией 1.25, но не собирается новой версией. А программа Y собирается только 1.45 и ни 1.25, ни новая версия не поможет. Итого, 3 компилятора одного языка в системе.
     
     
  • 4.56, анонимус (??), 04:33, 11/01/2023 [^] [^^] [^^^] [ответить]  
  • +5 +/
    назови пример такой программы. мне никогда не встречались, хотя я на расте пишу активно
     
     
  • 5.139, Аноним (17), 22:27, 11/01/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > я на расте пишу активно

    хеловорды не считаются за активность.

     
     
  • 6.151, Советский инженер (?), 10:30, 12/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Т.е. примера нет, да балабольчик?
     
  • 2.52, Аноним (52), 03:27, 11/01/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Погоди лет 10, устаканится, тогда и можно будет посмореть что там за раст.
     
  • 2.128, mos87 (ok), 18:52, 11/01/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    фиг с ним пе*ерастом, браузер 10-летней свежести не поймёт ни слова на нынОшнем жабаскрипте
    вот где ржака.

    а какой-нибудь реакт полугодовой давности не совместим со следующим))

    вэлкам ту зе джангл.

     

  • 1.10, Аноним (88), 22:58, 10/01/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +13 +/
    Не, ну тут ни раст ни его разработчики не винова^W... oh wait, shit
     
     
  • 2.107, Аноним (107), 15:48, 11/01/2023 [^] [^^] [^^^] [ответить]  
  • +3 +/
    да, раст не виноват. Раст это язык программирования. Там что, переполнение буфера произошло в safe-режиме? Или язык программирования (сам, без разработчиков) должен был добавить код проверки сертификатов в один из (пусть и ключевых) проектов? А вот разработчики да, начудили. Как и все остальные разработчики на других ЯП периодически чудят. Это представь, что бы эти разработчики наворотили, если бы раст не отобрал у них возможность в дополнение накидать еще типичных ошибок сишных проектов, которых там 70%.
     
     
  • 3.124, Аноним (124), 17:37, 11/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Им сишники в git'е этих 70% типичных ошибок накидали, зачем они этим гитом пользуются?
     
  • 3.140, keydon (ok), 22:28, 11/01/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Си тоже язык программирования, но почему-то для растоманов дыра в libname это "это дыра в си", а дыра в карго это "раст не виноват". Двуличность во всей красе.
     

  • 1.20, AlexCr4ckPentest (ok), 23:47, 10/01/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Хотите добавить дыр в системе на C?
    Просто выполните команду:
    $ sudo pacman -S rust
     
     
  • 2.21, Alladin (?), 23:53, 10/01/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    эмм, что?
     
  • 2.68, Илья (??), 08:28, 11/01/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    О, свидетели xorg, windows xp и строительства Карпат объявились
     
     
  • 3.129, mos87 (ok), 18:53, 11/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    от свидетеля вяленда слышу
     
  • 2.70, 1 (??), 08:58, 11/01/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    sudo: pacman: command not found
     
     
  • 3.99, Аноним (99), 12:43, 11/01/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    pacman это игра такая, я её помню! Поищите в репах своего дистрибутива. Не понял только, зачем её запускать под sudo.
     
     
  • 4.145, Kuromi (ok), 01:35, 12/01/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Если запускать от рута, то пакман призраков жрать может!
     

  • 1.25, ИмяХ (?), 00:08, 11/01/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    С чего это вдруг стало уязвимость? Это важная фича, которая используется в блокировщике рекламы Privaxy
     
     
  • 2.45, Аноним (45), 02:09, 11/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    не бывает такого блокировщика рекламы. бывают только uBlock/uMatrix и блокировка на стороне dns в лоб типа StevenBlack hosts или регекспами
     

  • 1.46, YetAnotherOnanym (ok), 02:28, 11/01/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    > отсутствием проверки хостового открытого ключа

    Зато без переполнений буфера, выхода за границы массива и обращения к освобождённой памяти. Пока, по крайней мере.

     
     
  • 2.59, Аноним (59), 05:53, 11/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    А потом захочешь написать системное приложение опираясь на давно проверенные системные библиотеки и увидешь что там везде в обертках к ним лютый unsafe.
     
     
  • 3.90, YetAnotherOnanym (ok), 11:45, 11/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Да я уже понял, что скоро придётся наступит растопесец. Надеюсь, к тому моменту я успею заработать себе на пенсию и свалить из IT.
     
     
  • 4.110, burjui (ok), 16:19, 11/01/2023 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Можешь не дожидаться пенсии, у тебя уже логическое мышление и способность учиться сморщились. Иди в книжный магазин, будешь книжки рекламировать - например, "69 способов не наступить в UB на C++" Скотта Мейерса.
     
     
  • 5.154, YetAnotherOnanym (ok), 11:53, 12/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Нее, я буду сидеть на диване с кофием и печеньками, и неспешно броузить новости о массовых взломах через уязвимости растософта, авторы которого поверили в сказку о безопасности раста.
     
     
  • 6.156, burjui (ok), 17:56, 12/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Что угодно, лишь бы код не писать.
     
  • 3.111, burjui (ok), 16:21, 11/01/2023 [^] [^^] [^^^] [ответить]  
  • –3 +/
    То ли дело C и C++, где в unsafe обёрнут весь код. Ну, местным экспертам это не мешает, ведь они  никогда не совершают ошибок и какают радугой.
     
  • 2.150, Аноним (-), 09:43, 12/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > Зато без переполнений буфера, выхода за границы массива и обращения к освобождённой
    > памяти. Пока, по крайней мере.

    Странно, в списке CVE софта на расте даже и такое есть. Как ни странно.

     
     
  • 3.155, YetAnotherOnanym (ok), 11:57, 12/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Тссс! Зачем выдёргивать детей из сладкого плена иллюзий?
     

  • 1.48, Аноним (48), 02:39, 11/01/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    А пацан-то взрослеет на глазах! Вот уже понял, что TOFU до добра не доведёт. Диды с сишкой ещё лет пять похихикают, а потом как мрлодые побегут за книжками на амазон.
     
  • 1.49, Аноним (49), 02:44, 11/01/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Что за прикол хранить пакеты на GitHub? Perlовский CPAN сам хранит пакеты и его можно легко целиком отзеркалить через rsync.
     
     
  • 2.53, Аноним (53), 03:41, 11/01/2023 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Ага, а ещё там мега удобно смотреть последние коммиты с начала 2000х, через зеркала svn, т.к. в ту пору еще
    не было гита и патчи тупо присылали в мейлинг лист. Ну да, давай еще возродим Windows XP.
     
     
  • 3.55, Аноним (49), 04:09, 11/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Зачем возраждать xp, она итак жива и исходники есть. Что-то не нравится - правь и собирай.
     
     
  • 4.73, Аноним (73), 09:34, 11/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    А ты пробовал? У тебя получилось?
     
     
  • 5.77, Аноним (49), 10:24, 11/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Да. Все компилится кроме пинбола и winlogon.exe. Скопировал софт и игрушки в Live cd образ Reactos.
     
  • 3.75, perl (??), 10:19, 11/01/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > патчи тупо присылали в мейлинг лист

    можно подумать это какое-то плохое действо (а может даже и не эффективное)

     
  • 3.89, YetAnotherOnanym (ok), 11:43, 11/01/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Свой гит поднять - не?
     
     
  • 4.95, Аноним (49), 12:08, 11/01/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    На каждый пакет?
     
     
  • 5.153, YetAnotherOnanym (ok), 11:49, 12/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > На каждый пакет?

    Ога, отдельный сервер с гитом на каждый пакет, иначе никак.

     
  • 2.130, mos87 (ok), 18:55, 11/01/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    ну просто перлом занимаются умные но скучные люди

    никто даже не знает, правильная ли у них ориентация! это нынче не катит.

     

  • 1.54, Аноним (53), 03:44, 11/01/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • –6 +/
    Анти-растеры, пакетный менеджер от языка отличить можете? Или извилин понять новость не хватило?
     
     
  • 2.57, растоман (?), 04:38, 11/01/2023 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Так карго же на этом расте и написан)
     
     
  • 3.109, Аноним (107), 16:09, 11/01/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    И? Раст (ЯП) должен был в проект карго сам, без программистов, код проверки сертификата впихнуть? И в любой другой проект, даже твой первый HelloWorld на расте он тоже эту проверку должен впихнуть? А может раст обязан был не позволить (любой?) программе скомпилироваться, если там этой проверки нет? А, наверное, там проблема с проверкой вышла из-за двойного освобождения памяти. Или неинициализированную память позволил использовать. Вот зараза.
     
  • 2.62, yet another anonymous (?), 06:21, 11/01/2023 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Как только в новости про раст не будет упоминаться cargo, и отношения между cargo и rust будут примерно такими же, как между каким-нибудь apt и gcc.
     
  • 2.63, EULA (?), 06:25, 11/01/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Так ведь же пакетный менеджер на безопасном языке написан и не может содержать дыр. Или этодругое?
     
  • 2.72, Аноним (88), 09:15, 11/01/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Дак вы ведь тож не можете отличить Сишку, от софта на ней написанного.

    Кстати, а почему из новостей про раст пропало упоминание о том, что он позволяет безопасно работать с памятью?

     
     
  • 3.92, freecoder (ok), 11:49, 11/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Потому что это уже стало очевидно.
     
     
  • 4.119, Аноним (107), 16:32, 11/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Даже типы ошибок, совершаемые в раст-проектах, каждый раз подчеркивают сишникам их заблуждение, но не в коня корм. Хотя может они считают, что тонко троллят растоманов, не замечая, как жалко сишники-фанатики выглядят со своими утверждениями.
     
     
  • 5.148, (?), 08:02, 12/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Помнится кое-кто говорил, что ошибка есть понятие абсолютное, то есть она либо есть , либо нет, значит "типы" значения не имеют, а значит раст, как впрочем и все остальные, это просто еще один язык, и утверждать что он "не дает возможности совершить ошибку" , это как раз и есть глупость.

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

     
  • 2.104, Аноним (104), 14:55, 11/01/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Можно полный список от чего раст не защищает, что в него не входит и отношения к ЯП не имеет?

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

     
     
  • 3.112, burjui (ok), 16:25, 11/01/2023 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Это какие растоманы обвиняли синяков в уязвимостях, не связанных с некорректной работой с памятью?
     
     
  • 4.136, Аноним (104), 20:42, 11/01/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Тогда растоманы должны говорить: так это программист некорректно с памятью работал, а си не виноват.
    А UB и вовсе задокументированы.
     
  • 2.122, Совершенно другой аноним (?), 17:30, 11/01/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Можно вопрос - если пакетный менеджер отличается от языка почему его исправили в Rust 1.66.1, а не в каком-нибудь Cargo 1.66.1?
     
  • 2.142, AKTEON (?), 00:04, 12/01/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Предъявите  популярные  реализации Rust без Cargo
     

  • 1.58, Бывалый смузихлёб (?), 05:08, 11/01/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    > Уязвимость вызвана отсутствием проверки хостового открытого ключа

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

     
     
  • 2.61, Аноним (59), 06:05, 11/01/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    look! I'm a rust programmer

    **&&&*&&***&&&***&println(*&&**&&**&&&****&"Hello World")*&&***&&;

     
     
  • 3.69, Anonimik (?), 08:41, 11/01/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ростовского unwrap на тебя нет)
     
     
  • 4.113, burjui (ok), 16:25, 11/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Лучше drop.
     
  • 3.71, Аноним (71), 09:10, 11/01/2023 [^] [^^] [^^^] [ответить]  
  • +3 +/
    println!
     
  • 3.125, Аноним (125), 18:48, 11/01/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Unsafe забыл, без него не заработает
     
  • 2.74, НеЗахлебнись (?), 10:06, 11/01/2023 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Никто такого и не заявлял, так же как и привет теореме о неполноте Геделя с последующей проблемой останова и прочими веселостями типа дедлоков. Все что ржавый гарантирует - это то что в safe(от UB) коде не будет UB, что по современным реалиям уже невероятный эволюционный скачок.
     
     
  • 3.76, perl (??), 10:22, 11/01/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    хочешь сказать в рекламном буклете всё наврали?
     
     
  • 4.84, НеЗахлебнись (?), 10:48, 11/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Интересно и что вам там наплели?(или вы может сами чего додумали). Базовую теорию никто не отменял. Как и критическое мышление впрочем.
     
  • 4.115, burjui (ok), 16:27, 11/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Сразу видно, что ты его не читал, т.к. обещали только безопасную работу с памятью. Типичное "не читал, но осуждаю".
     
  • 2.120, Аноним (107), 16:44, 11/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    и не должны были Никто и не просил защиты от логических и алгоритмических ошиб... большой текст свёрнут, показать
     
     
  • 3.143, деанон (?), 00:16, 12/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    бОльшинство разработчиков только-только с дерева слезли и решили, что они программисты, не имея понятия, что такое указатель.
     

  • 1.64, Аноним (64), 07:47, 11/01/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Просто надо было Cargo на расте писать, а не на этом вашем дырявом C++
     
     
  • 2.79, Аноним (79), 10:40, 11/01/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Просто надо было не заниматься ерундой и писать новый йэзыгъ потому что мы можем. А писать сразу тулинг для C++.
     
     
  • 3.98, Аноним (98), 12:43, 11/01/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Еще один? Это который уже по счету?
     

  • 1.83, Анонн (?), 10:45, 11/01/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Печально, что ни один язык не может защитить от логических ошибок :( Потому что она может быть даже в модели, по которой проводилась верификация.
    Но еще более печально, что тут столько комментаторов, не способных понять какие-то гарантии дает раст. Страшно представить какой код они пишут.
     
     
  • 2.93, freecoder (ok), 11:57, 11/01/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Они не пишут код, в лучшем случае - они собирают пакеты.
     

  • 1.87, Аноним (87), 11:32, 11/01/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >Уязвимость устранена в выпуске Rust 1.66.1, в котором была реализована проверка соответствия текущего открытого ключа SSH-сервера ключу, который использовался в прошлых сеансах.

    Нужно вообще с Cargo список публичных ключей популярных сервисов поставлять.

     
  • 1.100, Нанонимус (ok), 12:43, 11/01/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ну хотя бы не buffer overflow.. Хотя, с обилием unsafe кода в библиотеках это чудо, что растовый код ещё не прославился подобным классом ошибок.

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

     
     
  • 2.103, Аноним (17), 14:01, 11/01/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > с обилием unsafe кода в библиотеках

    просто их ещё не дообследовали.

     
  • 2.118, burjui (ok), 16:32, 11/01/2023 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Надеюсь, пожилые синяки всё же поумнеют и со временем (хотя, сколько уже прошло, а толку ноль) поймут, что Rust никогда не обещал отсутствия логических ошибок, а отсутствие UB он обещал для всего кода, кроме обёрнутого в unsafe, т.е. более 99% кода в типичном проекте. Грустно, в общем, если бы не было так смешно.
     
  • 2.121, Аноним (98), 16:49, 11/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Сам дернул пол-фразы про safe-код из контекста, сам и посмеялся/поплакал, молодец чо сказать. Синтаксис не сахар - да, но приемлимый(критикуя, предлагай). С unsafe в сообществе стараются бороться тулингом(advisory-db) и донося до всех, что ансейф это про оптимизации и соблюдение контрактов. Естественно раст не защищает от всех проблем, но гарантии компилятора(если в них разобраться) действительно мощные, особенно касательно ссылок(&) и многопоточного кода(Arc/Rc/etc) ценой перегруженного синтаксиса(по началу так кажется, да)
     
     
  • 3.147, Аноним (124), 02:02, 12/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Боже, да как же достало этот бред слушать про всякие проверки боров, ссылки и прочую чепуху.
    Вот смотри, растофил. Есть у меня программа (допустим ядро), она запускается в Ring0, ей доступна вся память, к-ю видит CPU, а так же регистры устройств, подключенных по PCI, к примеру. И вот зачемм мне твой чекер боровов тут нужен, за какой памятью он тут следить будет, если она ВСЯ моя?

    А если мне надо что-то типа такого сделать из этой моей программы?

    int *p = (int*)0x56248d1b7139;
    *p = 0xffffff;

    Твой раст тут обгадится, очевидно.

     
     
  • 4.157, burjui (ok), 18:03, 12/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    let p = 0x56248d1b7139 as *mut i32;
    unsafe {
        *p = 0xffffff;
    }

    Иди трусы стирай, ыксперт.

     
     
  • 5.158, Аноним (124), 18:59, 12/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    дак тут же никакие проверка не работают, ыксперт
     
  • 5.159, Аноним (124), 19:04, 12/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    дак тут же никакие проверка не работают, ыксперт. И нахер тогда нужен ваш сраст?
    Создавался для тормозного браузера, там бы и оставался.
     
  • 5.160, Аноним (124), 19:09, 12/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Я имел ввиду без unsafe, чтоб почувствовать крутизну раста над сишкой. А ты мне показал какую-то шляпу. Иди сам стирай трусы
     
     
  • 6.161, burjui (ok), 20:45, 12/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > Я имел ввиду без unsafe

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

    > А ты мне показал какую-то шляпу

    Давай, чтобы было максимально честно по твоей логике: с тебя миллион строк кода на C, в которых нет ни единого некорректного обращения к памяти, а с меня - запись по произвольному адресу на Rust без unsafe.

     
     
  • 7.163, Аноним (124), 21:11, 12/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Слушай, перестань уже всех людей судить по себе Если ты постоянно лажаешь с пам... большой текст свёрнут, показать
     
     
  • 8.164, Анончик (?), 04:43, 13/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Потому что поддерживать код дорого, когда язык тебя ограничивает меньше вероятно... текст свёрнут, показать
     
  • 7.166, Аноним (124), 02:24, 14/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > поэтому тебе светит не сегфолт, а просто кривой код, который ты будешь отлаживать неделю.

    Ыксперт, прежде, чем такой бред писать, ты хотя бы почитай (а лучше в универе поучись, а не в ПТУ) как работатет MMU, что такое TLB, ASID и т.п. Сразу видно - глупый растоман ничего не знающий, но мнение имеющий.

     
  • 6.162, Аноним (124), 20:47, 12/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > Правда, ты же у нас любитель полного контроля, когда вся память - твоя, поэтому тебе светит не сегфолт, а просто кривой код, который ты будешь отлаживать неделю

    а как это в расте сделано?

     

  • 1.126, mos87 (ok), 18:49, 11/01/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    пора запилить единый пакето-манагер для всех язычков.
     
     
  • 2.134, Аноним (17), 19:44, 11/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    100500 реализаций уже есть, но растаманы придумали и впилили в компилятор свой, с куртизанками и пасьянсом.
     

  • 1.133, Аноним (133), 19:34, 11/01/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Можно подумать, что вам кто-то мешает взять любую версию Rust и написать своё ПО без внешних зависимостей. Весь вой от макак, которые привыкли халявить на чужих наработках, а сами по себе ни на что не способны.
     
     
  • 2.135, Аноним (17), 19:46, 11/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > и написать своё ПО без внешних зависимостей

    а не получится, там даже рандом - внешний.

     
     
  • 3.137, Аноним (30), 21:10, 11/01/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    дык напиши свой рандом
     
     
  • 4.141, Аноним (17), 22:29, 11/01/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    зачем, если есть си?
     
     
  • 5.146, Аноним (98), 01:57, 12/01/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Потому что нет UB и есть борроу-чекер
     
     
  • 6.165, Аноним (165), 17:11, 13/01/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    И какое это имеет отношение к отсутствию рандома в расте?
     

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



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

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