Skip to content
HomeVideosBooksBlogs
AllTop postsTopics
Podcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K

    Yossarian

    blog.yossarian.net · Personal blog · on HN since 2017

    Yossarian is a security engineer who writes about software supply chain security, Python packaging, GitHub Actions, bash, and low-level topics like x86_64 addressing.

    Visit blogRSSHN submissions
    SecurityOpen Source & LinuxProgramming
    What HN says

    HN commenters cite the dependency cooldown post as timely and credit the Ultralytics analysis as a great read; the author himself appears in the thread.

    Stats for nerds
    72HN people shared it
    150linked in comments
    4.7Kstory points
    Aug 2026last shared
    2020people per year2026

    Top posts on HN

    1. 1
      We should all be using dependency cooldowns
      7 people · 489 points · first shared 2025 · 272 comments on HN
    2. 2
      Be Aware of the Makefile Effect
      2 people · 440 points · first shared 2025 · 342 comments on HN
    3. 3
      Weird architectures weren't supported to begin with
      8 people · 357 points · first shared 2021 · 270 comments on HN
    4. 4
      Why don’t we do email verification in reverse?
      2 people · 305 points · first shared 2022 · 321 comments on HN
    5. 5
      Bypassing GitHub Actions policies in the dumbest way possible
      3 people · 247 points · first shared 2025 · 119 comments on HN
    6. 6
      Hiding messages in x86 binaries using semantic duals
      2 people · 207 points · first shared 2020 · 55 comments on HN
    7. 7
      Dear GitHub: no YAML anchors, please
      1 person · 178 points · first shared 2025 · 151 comments on HN
    8. 8
      How x86_64 Addresses Memory
      4 people · 169 points · first shared 2020 · 72 comments on HN
    9. 9
      Things I hate about Rust, redux
      1 person · 169 points · first shared 2022 · 127 comments on HN
    10. 10
      Things I hate about Rust
      1 person · 163 points · first shared 2020 · 121 comments on HN

    What HN people wrote when they linked it

    • still_grokkingMay 2023

      > Because PyPI (or an attacker) could always substitute a new key.

      No, they couldn't. The old package would authorize a later update. Think blockchain.

      > This might be a misunderstanding, but I don't think you actually want this: lots of large packages have multiple release managers (and contributors who come and go); you don't want to manually resolve each new human identity that appears for a package distribution.

      I'm not sure you actually know how organizations release software:

      You wouldn't have signatures of individuals in that case of course, but stuff signed by keys owned by the organization.

      Think signed Linux packages from distributions.

      > What most people actually want is a strong cryptographic attestation that the package distribution came from the same source as the thing hosting the source code […]

      No, that's completely uninteresting. Nothing could bother me less.

      I know already that every time I'm downloading something from e.g. Microsoft GitHub it comes form Microsoft GitHub. There is strong E2E encryption in place making that sure (TLS). Same for any other hoster.

      > […] since both that service and the owner of the repository are presumed trusted.

      Wrong again.

      I'm not trusting any hosting service any more than any other random people on the internet. Not only that a service can get malicious for any reason at any time, get hacked, or be forced by authorities to perform targeted attacks, I actually don't have any trust relationship with them…

    • steveklabnikApr 2025

      > And if they do, is it good design to install back-ends for (say) 23 such target architectures that you're never going to cross-compile for, in practice? Does that benefit the user?

      rustc --print target-list | wc -l 287 I'm kinda surprised at how large that is, actually. But yeah, I don't mind if I have the capability to cross-compile to x86_64-wrs-vxworks that I'm never going to use.

      I am not an expert on all of these details in clang specifically, but with rustc, we take advantage of llvm's target specifications, so you that you can even configure a backend that the compiler doesn't yet know about by simply giving it a json file with a description. https://doc.rust-lang.org/nightly/nightly-rustc/rustc_target/spec/index.html

      While these built-in ones aren't defined as JSON, you can ask the compiler to print one for you:

      rustc +nightly -Z unstable-options --target=x86_64-unknown-linux-gnu --print target-spec-json It's lengthy so instead of pasting here, I've put this in a gist: https://gist.github.com/steveklabnik/a25cdefda1aef25d7b40df35a026144d

      Anyway, it is true that gcc supports more targets than llvm, at least in theory. https://blog.yossarian.net/2021/02/28/Weird-architectures-werent-supported-to-begin-with

    • gawaJun 2025

      > which GitHub goes to extents to document GitHub Actions policies as applying to `uses:` clauses

      If it were phrased like this then you would be right. The docs would give a false sense of security, would be misleading. So I went to check, but I didn't find such assertion in the linked docs (please let me know if I missed it) [0]

      So I agree with the commenter above (and Github) that "editing the github action to add steps to download a script and running" is not a fundamental flaw of this system designed to do exactly that, to run commands as instructed by the user.

      Overall we should always ask ourselves: what's the threat model here? If anyone can edit the Github Action, then we can make it do a lot of things, and this "Github Action Policy" filter toggle is the last of our worry. The only way to make the CI/CD pipeline secure (especially since the CD part usually have access to the outside world) is to prevent people from editing and running anything they want in it. It means preventing the access of users to the repository itself in the case off Github Actions.

      [0] https://blog.yossarian.net/2025/06/11/github-actions-policies-dumb-bypass

    • woodruffwDec 2024

      (Author of this post.)

      If you’re interested in how this went down, the timeline section[1] in particular is worth jumping to: my key takeaway is that this vulnerability was reintroduced, and that there’s only limited evidence that the Ultralytics team have done a full revocation and rotation of all accounts and credentials that the attacker may have had access to.

      Given that, it’s not inconceivable that a third round of backdoored packages will occur. I would recommend that people exercise extreme caution when installing the current versions; most users would probably be best served by pinning to an older version from before any indicators of compromise.

      [1]: https://blog.yossarian.net/2024/12/06/zizmor-ultralytics-injection#appendix-rough-timeline-of-events

    • daveguyNov 2025

      Isn't it worth the balance between stability and effort to go with LTS (long term support / security updates only)?

      You know the updates on LTS will be relatively much safer. The limit of potential breaking updates to every 2 years is mostly the point. But if you're just talking about a home lab where you want to use the latest advances without the latest exploits, try a dependency cooldown. Simon Willison recently pointed out this post by William Woodruff about dependency cooldowns [0]. Wait a day between update release and adoption to identify supply chain compromises.

      In other words: Don't move fast. Don't break things.

      Or: Move slow. Keep things.

      [0] https://blog.yossarian.net/2025/11/21/We-should-all-be-using-dependency-cooldowns

    • gpmSep 2021

      > were previously supported

      I think it was over this debacle, definitely over some debacle, someone made a great blog post that pointed out this wording is usually incorrect (edit: Link https://blog.yossarian.net/2021/02/28/Weird-architectures-werent-supported-to-begin-with HN Thread: https://news.ycombinator.com/item?id=26294397).

      It previously worked, but no one was promising support for niche architectures. It just happened to work (at least enough that there weren't obvious bugs, who knows if fully). Expecting support for every non-standard way you can use the software is usually not a reasonable expectation of maintainers.

    Related

    Chain Blogblog.chain.com34 people

    Introducing Ivy: a new smart contract language

    Chain Blog
    Company · last shared 2018
    Waleed Khanblog.waleedkhan.name19 people

    Git undo: We can do better

    Waleed Khan
    Personal · last shared 2025
    Gentoo Blogsblogs.gentoo.org35 people

    The modern packager’s security nightmare

    Gentoo Blogs
    Company · last shared 2026
    PyPy Blogpypy.org183 people

    PyPy has moved to Git, GitHub

    PyPy Blog
    Company · last shared 2026
    Andrew Nesbittnesbitt.io84 people

    GitHub Actions has a package manager, and it might be the worst

    Andrew Nesbitt
    Personal · last shared 2026
    Yossi Kreininyosefk.com387 people

    Yosefk - My history with Forth & stack machines

    Yossi Kreinin
    Personal · last shared 2026
    Kolide Blogkolide.com27 people

    Is Grammarly a keylogger? What can you do about it?

    Kolide Blog
    Company · last shared 2026
    Yorick Peterseyorickpeterse.com22 people

    What it was like working for Gitlab

    Yorick Peterse
    Personal · last shared 2026