GLIBC нужна динамическая компоновка для таких вещей, как модули NSS
В NixOS (где каждый исполняемый файл может использовать собственную версию в том числе и glibc) эта проблема решается принудительным использованием nscd (точнее, nsncd) — в этом случае динамическая загрузка модулей NSS выполняется только процессом nsncd, а все остальные процессы могут быть слинкованы как угодно (хоть статически) с любой версией glibc, поддерживающей совместимый протокол nscd (а в этом протоколе, насколько я понимаю, очень давно ничего существенного не менялось).
Там не WhatsApp, а Telegram, где для отправки сообщения не обязательно знать номер телефона получателя (можно писать по username, либо, что более вероятно в подобном случае, по ID чата с ботом). Возможно, привязки чатов Telegram к личным кабинетам сохранились, а вот телефонные номера потом восстанавливались парсингом переписки, в результате к личному кабинету с чатом на сингапурском номере (который СДЭК вообще мог не знать) привязался российский номер.
Или это в винде уже из коробки есть какой-то функционал для OEM вендоров загаживать систему?
Именно так и есть — см. Windows Platform Binary Table; фактически в прошивку встраивается приложение для Windows (правда, несколько специфического вида — NT Native, не Win32), которое Windows запускает при каждой загрузке (за исключением безопасного режима или режима восстановления). Единственная защита от совсем уж вредоносного кода — приложение должно быть подписано (но, насколько я понял, требования к подписи там довольно слабые — не такие, как к подписи драйверов ядра); впрочем, встречались случаи, когда софт, устанавливаемый в Windows через этот механизм, затем пытался обновиться через Internet без адекватной проверки подлинности обновлений (например, загружая и запуская любую гадость через незащищённый HTTP).
К счастью, на GitHub SMS не является единственно возможным вариантом 2FA — там поддерживается стандартный TOTP. Но вот для восстановления доступа к учётной записи воспользоваться SMS действительно не получится — необходимо самостоятельно озаботиться созданием резервной копии аутентификатора TOTP и кодов восстановления.
Можно же поискать другой на том же али — только посмотреть, какого типа там крепление (бывает D-shaft и knurled shaft).
В-третьих, скроллинг происходит очень резко. То есть по сути перелистывается примерно 1,1 страницы.
Так у вас там стоит PgUp/PgDn, плюс, возможно, в прошивке неправильно настроен энкодер, в результате чего при повороте на один шаг действие выполняется 2 раза. В оригинальной прошивке sofle/rev1 для энкодеров стоит "resolution": 2, что соответствует поведению большинства оригинальных энкодеров Alps серии EC11, но большинство китайских энкодеров требуют "resolution": 4. К сожалению, через Vial эта настройка не меняется — требуется пересборка прошивки, а с подобными китайскими изделиями это может быть сложно, поскольку внутри там может быть совсем другое железо, не похожее на оригинал, а соблюдением лицензии GPL китайцы не заморачиваются, поэтому добыть исходники прошивки практически нереально.
Как минимум можно попробовать повесить на энкодер действия Mouse Wheel Up/Mouse Wheel Down — тогда шаг прокрутки будет совпадать с тем, который используется колесом мыши (двойная прокрутка всё равно никуда не денется, но, возможно, так она хотя бы будет меньше страницы). Кстати, там же ещё есть и горизонтальная прокрутка, которая может быть полезна в некоторых ситуациях.
This User — пользователь, чьи учетные данные предоставлены. Ни разу не видел такую настройку.
А я видел — есть костыльный способ заставить COM-объекты MS Office работать в случае, когда к ним обращаются из задания планировщика, при этом ни одного активного сеанса пользователя на машине нет.
В общем случае ИНН организации не является уникальным идентификатором — например, ИНН филиала вуза может совпадать с ИНН головного вуза (в результате чего регулярно возникают различные проблемы).
Старые RFC писались в те времена, когда ещё существовали машины, где байт состоял не из 8 битов (ну или по крайней мере об этом ещё кто-то помнил), поэтому для обозначения 8 бит данных использовался термин «октет».
Хотя в данном случае слово «octet» в этой части текста появилось только в RFC 5321, а в более старых RFC 2821 и RFC 821 было написано просто «character».
Недавно наблюдали похожую ситуацию, но в противоположном направлении — в некоторых случаях точка дублировалась, ломая ссылки в письме. Оказалось, что SwiftMailer (ну да, unsupported и всё такое) при использовании Swift_SendmailTransport смотрит в опции команды sendmail, и если не обнаруживает там опцию -i, дублирует точку в начале строки, как для протокола SMTP, однако реализация /usr/sbin/sendmail от Postfix не производит удаление дублированных таким образом точек во входных данных. Добавление опции -i исправило ситуацию.
Кроме того, для проявления проблемы также было необходимо, чтобы исходящие письма кодировались в формате Quoted-Printable (при использовании base64 точки в теле письма были бы просто не видны на уровне SMTP), но именно формат Quoted-Printable используется по умолчанию.
Это на самом деле баг в binutils-avr, который существовал там по той причине, что версия binutils там на самом деле очень древняя (но патчи от Atmel есть только для этой древней версии); в апстриме binutils проблему починили ещё в 2017 году. В конце 2023 года баг внезапно пофиксили, но до Debian stable фикс пока ещё не дополз (зато вроде бы вошёл в Ubuntu 24.04 LTS).
Там есть ещё один вариант эксплуатации уязвимости, который не упомянут в русском переводе — Git >= 2.34 может использовать ключи SSH для подписи коммитов, и эти подписи, созданные через уязвимую версию Pageant, тоже могут быть использованы для компрометации ключа.
Ну вот в том багрепорте как раз расписано, что и где не работает. Там ещё проблема в том, что зоопарк WM для X11 сейчас превратился в зоопарк композиторов для Wayland, и этот зоопарк, похоже, ещё похуже старого — если с WM основная проблема была в некорректном позиционировании окон в некоторых комбинациях софта (что, кстати, именно сейчас наблюдается в комбинации Kicad 7/8 + i3 — KiCad пытается запоминать позицию некоторых окон и восстанавливать её при повторном открытии, но ошибается на размер рамки и заголовка окна в i3), то в случае Wayland разработчики наплодили 500 штук разных протоколов, из которых каждый композитор поддерживает какой-то свой набор со своими специфическими багами, и что и как надо реализовывать в приложениях — чёрт ногу сломит.
Плюс мешают принципиальные ограничения Wayland — например, тот же KiCad для поддержки позиционирования объектов с клавиатуры и скроллинга при перемещении за пределы видимой области хочет управлять позицией курсора мыши, с чем в X11 никаких проблем нет, а в Wayland это либо не работает вообще, либо надо придумывать очередной протокол, который опять же будет когда-нибудь реализован в половине композиторов, причём в половине из них как-то криво.
TOTP … требует постоянного наличия стабильного интернета на устройстве клиента
Как раз чистый TOTP не требует интернета на устройстве — требуется, чтобы время было установлено с достаточной точностью, для чего интернет в общем случае не нужен. Другой вопрос, что использование TOTP в таком варианте подразумевает, что пользователь должен самостоятельно открыть приложение для аутентификации, найти в нём нужную учётную запись, после чего ввести сгенерированный приложением код в форму входа (в случае входа через тот же смартфон может быть ещё вариант «скопировать код через буфер обмена»). В этом плане аутентификация через собственное приложение, показывающее уведомление, где достаточно только подтвердить вход, выглядит для пользователя существенно проще, но такой вариант без интернета уже не сработает.
Да я даже не представляю особо что там на клиенте генератором случайных чисел производится...
Например, макрос /castrandom (применение случайного заклинания из списка). В бою такое, конечно, вряд ли нужно (обычно это использовалось для какой-то косметики), но для поддержки подобных возможностей в безопасное окружение таки была протащена функция random(), что и привело к возможности создания скрытого канала.
В NixOS (где каждый исполняемый файл может использовать собственную версию в том числе и glibc) эта проблема решается принудительным использованием nscd (точнее, nsncd) — в этом случае динамическая загрузка модулей NSS выполняется только процессом nsncd, а все остальные процессы могут быть слинкованы как угодно (хоть статически) с любой версией glibc, поддерживающей совместимый протокол nscd (а в этом протоколе, насколько я понимаю, очень давно ничего существенного не менялось).
Для изменения порядка байтов в GCC есть
__builtin_bswap16()
,__builtin_bswap32()
,__builtin_bswap64()
(и где-то даже__builtin_bswap128()
).Для изменения порядка битов в Clang есть
__builtin_bitreverse32()
и т.п.; добавление в GCC пока только обсуждается.Там не WhatsApp, а Telegram, где для отправки сообщения не обязательно знать номер телефона получателя (можно писать по username, либо, что более вероятно в подобном случае, по ID чата с ботом). Возможно, привязки чатов Telegram к личным кабинетам сохранились, а вот телефонные номера потом восстанавливались парсингом переписки, в результате к личному кабинету с чатом на сингапурском номере (который СДЭК вообще мог не знать) привязался российский номер.
Вот только за оплату по СБП банк не даёт кешбек, поэтому платить «старым дедовским способом» через номер карты зачастую несколько выгоднее.
Как же изменились нормы…
Именно так и есть — см. Windows Platform Binary Table; фактически в прошивку встраивается приложение для Windows (правда, несколько специфического вида — NT Native, не Win32), которое Windows запускает при каждой загрузке (за исключением безопасного режима или режима восстановления). Единственная защита от совсем уж вредоносного кода — приложение должно быть подписано (но, насколько я понял, требования к подписи там довольно слабые — не такие, как к подписи драйверов ядра); впрочем, встречались случаи, когда софт, устанавливаемый в Windows через этот механизм, затем пытался обновиться через Internet без адекватной проверки подлинности обновлений (например, загружая и запуская любую гадость через незащищённый HTTP).
К счастью, на GitHub SMS не является единственно возможным вариантом 2FA — там поддерживается стандартный TOTP. Но вот для восстановления доступа к учётной записи воспользоваться SMS действительно не получится — необходимо самостоятельно озаботиться созданием резервной копии аутентификатора TOTP и кодов восстановления.
Можно же поискать другой на том же али — только посмотреть, какого типа там крепление (бывает D-shaft и knurled shaft).
Так у вас там стоит PgUp/PgDn, плюс, возможно, в прошивке неправильно настроен энкодер, в результате чего при повороте на один шаг действие выполняется 2 раза. В оригинальной прошивке
sofle/rev1
для энкодеров стоит"resolution": 2
, что соответствует поведению большинства оригинальных энкодеров Alps серии EC11, но большинство китайских энкодеров требуют"resolution": 4
. К сожалению, через Vial эта настройка не меняется — требуется пересборка прошивки, а с подобными китайскими изделиями это может быть сложно, поскольку внутри там может быть совсем другое железо, не похожее на оригинал, а соблюдением лицензии GPL китайцы не заморачиваются, поэтому добыть исходники прошивки практически нереально.Как минимум можно попробовать повесить на энкодер действия Mouse Wheel Up/Mouse Wheel Down — тогда шаг прокрутки будет совпадать с тем, который используется колесом мыши (двойная прокрутка всё равно никуда не денется, но, возможно, так она хотя бы будет меньше страницы). Кстати, там же ещё есть и горизонтальная прокрутка, которая может быть полезна в некоторых ситуациях.
А я видел — есть костыльный способ заставить COM-объекты MS Office работать в случае, когда к ним обращаются из задания планировщика, при этом ни одного активного сеанса пользователя на машине нет.
В общем случае ИНН организации не является уникальным идентификатором — например, ИНН филиала вуза может совпадать с ИНН головного вуза (в результате чего регулярно возникают различные проблемы).
И ладно ещё если просто
halt()
, а не что похуже (случай с проигрыванием гимна уже был).Старые RFC писались в те времена, когда ещё существовали машины, где байт состоял не из 8 битов (ну или по крайней мере об этом ещё кто-то помнил), поэтому для обозначения 8 бит данных использовался термин «октет».
Хотя в данном случае слово «octet» в этой части текста появилось только в RFC 5321, а в более старых RFC 2821 и RFC 821 было написано просто «character».
Недавно наблюдали похожую ситуацию, но в противоположном направлении — в некоторых случаях точка дублировалась, ломая ссылки в письме. Оказалось, что SwiftMailer (ну да, unsupported и всё такое) при использовании
Swift_SendmailTransport
смотрит в опции командыsendmail
, и если не обнаруживает там опцию-i
, дублирует точку в начале строки, как для протокола SMTP, однако реализация/usr/sbin/sendmail
от Postfix не производит удаление дублированных таким образом точек во входных данных. Добавление опции-i
исправило ситуацию.Кроме того, для проявления проблемы также было необходимо, чтобы исходящие письма кодировались в формате Quoted-Printable (при использовании base64 точки в теле письма были бы просто не видны на уровне SMTP), но именно формат Quoted-Printable используется по умолчанию.
Это на самом деле баг в binutils-avr, который существовал там по той причине, что версия binutils там на самом деле очень древняя (но патчи от Atmel есть только для этой древней версии); в апстриме binutils проблему починили ещё в 2017 году. В конце 2023 года баг внезапно пофиксили, но до Debian stable фикс пока ещё не дополз (зато вроде бы вошёл в Ubuntu 24.04 LTS).
Там есть ещё один вариант эксплуатации уязвимости, который не упомянут в русском переводе — Git >= 2.34 может использовать ключи SSH для подписи коммитов, и эти подписи, созданные через уязвимую версию Pageant, тоже могут быть использованы для компрометации ключа.
Ну вот в том багрепорте как раз расписано, что и где не работает. Там ещё проблема в том, что зоопарк WM для X11 сейчас превратился в зоопарк композиторов для Wayland, и этот зоопарк, похоже, ещё похуже старого — если с WM основная проблема была в некорректном позиционировании окон в некоторых комбинациях софта (что, кстати, именно сейчас наблюдается в комбинации Kicad 7/8 + i3 — KiCad пытается запоминать позицию некоторых окон и восстанавливать её при повторном открытии, но ошибается на размер рамки и заголовка окна в i3), то в случае Wayland разработчики наплодили 500 штук разных протоколов, из которых каждый композитор поддерживает какой-то свой набор со своими специфическими багами, и что и как надо реализовывать в приложениях — чёрт ногу сломит.
Плюс мешают принципиальные ограничения Wayland — например, тот же KiCad для поддержки позиционирования объектов с клавиатуры и скроллинга при перемещении за пределы видимой области хочет управлять позицией курсора мыши, с чем в X11 никаких проблем нет, а в Wayland это либо не работает вообще, либо надо придумывать очередной протокол, который опять же будет когда-нибудь реализован в половине композиторов, причём в половине из них как-то криво.
KiCad пока ещё нормально не работает в Wayland; как-то работает через XWayland, но при необходимости масштабирования там получается мыло.
Как раз чистый TOTP не требует интернета на устройстве — требуется, чтобы время было установлено с достаточной точностью, для чего интернет в общем случае не нужен. Другой вопрос, что использование TOTP в таком варианте подразумевает, что пользователь должен самостоятельно открыть приложение для аутентификации, найти в нём нужную учётную запись, после чего ввести сгенерированный приложением код в форму входа (в случае входа через тот же смартфон может быть ещё вариант «скопировать код через буфер обмена»). В этом плане аутентификация через собственное приложение, показывающее уведомление, где достаточно только подтвердить вход, выглядит для пользователя существенно проще, но такой вариант без интернета уже не сработает.
Третий уровень, видимо, всё-таки чуть раньше появился на клавиатуре SAIL (правда, там он назывался TOP).
Например, макрос
/castrandom
(применение случайного заклинания из списка). В бою такое, конечно, вряд ли нужно (обычно это использовалось для какой-то косметики), но для поддержки подобных возможностей в безопасное окружение таки была протащена функцияrandom()
, что и привело к возможности создания скрытого канала.