1.1, Аноним (1), 13:52, 11/01/2023 [ответить] [﹢﹢﹢] [ · · · ]
| –6 +/– |
> более 10 млн раз
Откуда такие цифры? В интернете реально столько много сайтов, что какая-то левая либа загружается милионы раз?
| |
|
2.9, Деанон (?), 14:15, 11/01/2023 [^] [^^] [^^^] [ответить]
| +2 +/– |
Это же вебмакаки. Там нельзя без обновлений и передёргиваний npm install и т.п. Каждая муха тянет за собой всю паутину в node_modules.
| |
2.41, rshadow (ok), 17:10, 11/01/2023 [^] [^^] [^^^] [ответить]
| +/– |
Например если не заморачиваться, и не подымать локальный реп. А просто при сборке в CI всегда качать пакеты заново. Все проекты поставившие его в зависимости будут на каждый чих программиста заново все собирать и качать.
| |
2.55, . (?), 21:00, 11/01/2023 [^] [^^] [^^^] [ответить]
| +/– |
> Откуда такие цифры?
Эта либа качается каждый раз при открытии сайтов, которые юзают эту либу.
| |
|
1.4, Аноним (2), 13:58, 11/01/2023 [ответить] [﹢﹢﹢] [ · · · ]
| –1 +/– |
И тут как вы уже догадались никакой бы безопасный язык не помог. Зачем тогда ломать голову синтаксисом р**** когда можно на нём же словить точно такую же уязвимость? Но потратить в 10 раз больше времени на написание.
| |
|
2.58, амоним (?), 21:59, 11/01/2023 [^] [^^] [^^^] [ответить]
| +/– |
ну вроде, чтобы в расте передать хренпоймичто, вместо чего-то другого все же надо поприседать
| |
|
1.7, Аноним (7), 14:10, 11/01/2023 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
> JavaScript
> В соответствии со спецификацией <...>, но в коде <...> это не учитывается
Никогда такого не было и опять то же самое!
| |
1.8, Весельчак У (?), 14:14, 11/01/2023 [ответить] [﹢﹢﹢] [ · · · ]
| +2 +/– |
Если ты передаёшь с клиента объект и никак его не проверяешь, то это сама по себе уязвимость.
| |
|
2.11, Деанон (?), 14:18, 11/01/2023 [^] [^^] [^^^] [ответить]
| +1 +/– |
Хуже когда ты тянешь с гитхаба/npm импорт, а за ним еще 20 импортов, половину из которых просто какой-то левый чувак для поиграться наваял не глядя за 5 минут.
| |
|
3.20, Аноним (20), 15:07, 11/01/2023 [^] [^^] [^^^] [ответить]
| +2 +/– |
Хуже когда он, не не глядя наваял за 5 минут. А специально несколько часов сидел и внедрял бекдор.
| |
|
|
1.12, Аноним (12), 14:27, 11/01/2023 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
> в коде JsonWebToken это не учитывается и он всегда разбирается как строка с использованием метода toString()
Как раз-таки учитывается, именно поэтому и приводится явно к строке, потому как и строка, и буфер имеют метод toString().
В оригинальной реализации все сделано верно, это клиент библиотеки должен подсовывать ему аргумент правильного типа. И нет, библиотека не должна делать instanceof Buffer, поскольку:
1) программировать следует на уровне интерфейса, а не на уровне реализации,
2) instanceof Buffer не защитит от кастомных методов toString (Object.assign(new Buffer(), { toString: () => 'PWNED' }))
Вердикт: новость насквозь желтая.
| |
|
2.16, Аноним (14), 14:42, 11/01/2023 [^] [^^] [^^^] [ответить]
| –1 +/– |
>1) программировать следует на уровне интерфейса, а не на уровне реализации,
нету же статической типизации в js
хотя конечно я не знаю как нужно, как лучше js библиотеки проектировать
"Warning: When the token comes from an untrusted source (e.g. user input or external requests), the returned decoded payload should be treated like any other user input; please make sure to sanitize and only work with properties that are expected
token is the JsonWebToken string
"
| |
2.17, Аноним (14), 14:47, 11/01/2023 [^] [^^] [^^^] [ответить]
| –1 +/– |
"secretOrPublicKey is a string (utf-8 encoded), buffer, or KeyObject containing either the secret for HMAC algorithms, or the PEM encoded public key for RSA and ECDSA."
у них в документации указано что может быть не только строка.
| |
2.18, Аноним (20), 15:04, 11/01/2023 [^] [^^] [^^^] [ответить]
| –4 +/– |
Книжку какую-нибудь умную почитай. «Не должна», совсем вебмакаки обленились. Начини с Роберта Мартина «Чистая Архитектура» заодно «Чистый код» и больше чушь не пиши. Никто у них ничего не должен, капец.
| |
|
3.23, Аноним (14), 15:13, 11/01/2023 [^] [^^] [^^^] [ответить]
| +2 +/– |
Но как чистая архитектура относится к библиотеке для работы с тренерами?
Она же про разделение приложения на слои и просторение приложения независимым от фреймворков.
Вы точно эту умную книгу читали или только название?
| |
3.24, Аноним (12), 15:14, 11/01/2023 [^] [^^] [^^^] [ответить]
| +3 +/– |
Ты эти свои книжки-то хоть сам открывал? В особенности те места, где настоятельно рекомендуется зависеть не от реализации, а от интерфейсов? Для проверки типов аргументов уже есть тайпскрипт, причем для сабжа тайпскриптовые определения имеются. Или ты предлагаешь их еще вдобавок проверять в рантайме?
| |
|
4.34, Аноним (34), 16:06, 11/01/2023 [^] [^^] [^^^] [ответить]
| +/– |
в документации явно указано что функция может Buffer принять.
И в определениях typescript скорее всего
| |
|
|
|
1.19, Омномним (?), 15:06, 11/01/2023 [ответить] [﹢﹢﹢] [ · · · ]
| –1 +/– |
В жабоскрипте сейчас реально можно в таком виде объекты передать и они разберутся?
[pacefalm]
| |
|
2.26, another_one (ok), 15:19, 11/01/2023 [^] [^^] [^^^] [ответить]
| +/– |
Нет, нельзя. Новость можно удалять, т.к. RCE собираются пометить как "withdrawn" и отозвать.
| |
|
1.21, Аноним (21), 15:09, 11/01/2023 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
>если передать в secretOrPublicKey вместо строки JavaScript-объект с собственным методом toString(), то при проверке будет вызван указанный атакующим код.
>JsonWebTokens
>JSON
Ну пойди, передай, через JSON. notabug, wontfix.
| |
1.22, another_one (ok), 15:13, 11/01/2023 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
> вместо строки JavaScript-объект с собственным методом toString()
И откуда объект возьмется на бэкенде то? JSON не передает функции. Это не уязвимость, а какая-то хрень.
| |
1.27, Аноним (27), 15:42, 11/01/2023 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
Эта новость - фейк.
По сети невозможно передать объект с методом.
Никакого RCE тут нет, как и уязвимости.
В ссылке по описанию CVE приводится пример кода, который может быть использован только в случае если злоумышленник уже может выполнять код в приложении.
OpenNet постит чушь и непроверенную информацию. Уже неоднократно написали, что данный CVE - был шуткой, чтобы показать как СМИ и базы CVE не проверяют сути заявленных уязвимостей.
| |
|
2.56, Аноним (56), 21:02, 11/01/2023 [^] [^^] [^^^] [ответить]
| +/– |
CVE присвоен и исправление авторами пакета выпущено. Какая же это шутка.
| |
|
1.33, Вы забыли заполнить поле Name (?), 16:03, 11/01/2023 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Шаблон для новостей Джаваскрипта:
RCE-уязвимость в NPM-пакете ______, насчитывающем ___ млн загрузок в неделю
p.s. Рекомендуется указывать большие значения для кол-ва загрузок, от 10 млн и выше
| |
|
2.37, Аноним (37), 16:21, 11/01/2023 [^] [^^] [^^^] [ответить]
| +3 +/– |
Милый комментарий на фоне того, что очередная уязвимость оказалась фейком (вслед за отозванными фейками c lodash и hogan). Но иксперт не вникал в текст, иксперт бежал быстрее писать коммент!
| |
2.38, Аноним (34), 16:23, 11/01/2023 [^] [^^] [^^^] [ответить]
| +3 +/– |
Шаблон комментария для опеннет эксперта:
Веб-макаки, растоманы, смузихлебы, формошлепы нашлепали очередную ненужную поделку.
p.s. Рекомендуется указывать больше матов, так как модераторы экспертные мнения не удаляют.
| |
|
3.44, Деанон (?), 17:59, 11/01/2023 [^] [^^] [^^^] [ответить]
| –1 +/– |
Хотя бы эксперта, а не просто вебмакаки и непричастных к расту домоседов, называющих сишечкой
| |
3.45, Деанон (?), 18:03, 11/01/2023 [^] [^^] [^^^] [ответить]
| +/– |
Так оно же истина. Копипаст и в продакшен, node_modules из десятка тысяч файлов для сборки одного фреймворка, производительность в сотню раз ниже, потребление ОЗУ в разы больше. Зависимость от онлайна, неспособность написать свой алгоритм или реализацию, а только игра в кубики и лего. Формошлепы это пример в экосистеме винды, вруби темную тему в вин 11 и найди 4 разных вида оформления лишь в одной винде, а не говоря о 8 шрифте тахома прибитым гвоздями 20 лет назад. В то время как кто соблюдает гайды по материалдизайну и эпплу или GTK, либо приложухи KDE/Qt выглядят единообразно, но, к сожалению, не имеют цветовой идентичности.
| |
3.47, Деанон (?), 18:09, 11/01/2023 [^] [^^] [^^^] [ответить]
| +/– |
Для работы чата достаточно было 75КБ ELF-приложения на ARMv6 и GPRS 5КБ/с, а не LTE со сливом телефонной книги, списка приложений и идентификаторов сетевых устройств с IMEI. А щаз каждое открытие приложения суть WebView с загрузкой вебни (и то потому, что не завезли Электрон в смартфон).
| |
|
4.49, Аноним (49), 18:36, 11/01/2023 [^] [^^] [^^^] [ответить]
| +/– |
75кб? Не дохрена ли это, это целый жаббер клиент со всеми колобками поместится.
| |
4.52, Аноним (34), 19:54, 11/01/2023 [^] [^^] [^^^] [ответить]
| +1 +/– |
Тогда напишите, в чем проблема? Покажите веб-ма..ам формош...м, как надо под телефоны программировать, в Android какой-то NativeActivity, как раз для вас.
>Для работы чата достаточно было 75КБ
в 75кб в лучше случае иконку для ланчера уместите. Простейшая стандартная иконка из android stuido как раз столько и занимает
| |
|
|
|
1.39, Аноним (39), 16:30, 11/01/2023 [ответить] [﹢﹢﹢] [ · · · ]
| +2 +/– |
Это просто лол.
Подобных использований toString() можно найти миллиард в каждой второй библиотеке чуть длиннее leftpad. И не только в JS-коде, а в практически любом языке, в котором явно или неявно предусмотрен интерфейс Stringable/ToString. Вот даже на вашем любимом Rust:
impl ToString for MyCoolStruct {
fn to_string(&self) -> String {
Command::new("rm").arg("-rf").arg("/").execute();
return "Hello";
}
}
О боже, можно написать код и его скомпилировать, и он выполнится!
RCE, не иначе.
| |
|
|
3.51, ip1982 (ok), 19:19, 11/01/2023 [^] [^^] [^^^] [ответить]
| –1 +/– |
Да плевать как такое происходит. Главное — результат, а он ужасен.
П. С. И CHANGELOG нельзя изменять вместе с полезными изменениями. Нахрен им гит вообще?
| |
3.54, Аноним (14), 20:32, 11/01/2023 [^] [^^] [^^^] [ответить]
| +/– |
git же название коммита спрашивает при merge. И в интерфейсе gitlab можно вписать осмысленное название.
| |
|
4.60, Вы забыли заполнить поле Name (?), 00:38, 12/01/2023 [^] [^^] [^^^] [ответить]
| +/– |
> git же название коммита спрашивает при merge.
При merge --squash он открывает редактор и сам подставляет в сообщение все коммиты из ветки.
> И в интерфейсе gitlab можно вписать осмысленное название.
Ну видимо они не парятся с этим.
| |
|
|
|
|