ancatrusca

ancatrusca

We just published a new episode of BEAM There, Done That that I think deserves a focused discussion here.

Peter Ullrich spent an afternoon at ElixirConf EU running a $10 Claude experiment against the most-downloaded Hex packages. He found a critical vulnerability in decimal - a library used by almost every database and money-handling package in the ecosystem - in under 30 minutes, with no prior security experience. Since then he’s been systematically scanning further down the list and has reported roughly twice as many vulnerabilities as have been published so far.

Jonathan Machen, EEF CISO and operator of the Erlang Ecosystem Foundation’s CVE Numbering Authority, joins to explain what happens on the receiving end of those reports and where the infrastructure currently stands.

For library maintainers specifically: Jonathan’s single recommendation is to enable private vulnerability reporting on GitHub (three clicks) and write a security policy. If Peter finds something in your library, this is how he reaches you privately before anything is public. Without it, disclosure gets significantly harder for everyone.

The patterns appearing most often:

  • String.to_atom/1 and binary_to_term/1 enabling atom table exhaustion or remote code execution

  • HTTP libraries with missing buffer caps on WebSocket connections

  • Sobelow and Credo catch a meaningful portion of these statically

Peter’s prompts are open source - linked from his blog post if you want to run a scan on your own codebase. He recommends feeding your application file-by-file to Claude Opus with a prompt focused on externally-reachable attack vectors.

The bigger picture: the obscurity advantage the ecosystem relied on for 30 years is eroding. The EEF is building real infrastructure to replace it (CNA, AGES initiative, supply chain security), but it’s currently funded by a single sponsorship and staffed largely by volunteers. If your company is running Phoenix in production, that’s worth thinking about.

Happy to discuss the technical patterns, the disclosure process, or anything else from the episode.

Showing Posts 1 to 10

AndyL

AndyL

AI just changed the threat model for our ecosystem - here’s what’s happening and what you should do

That’s a scary headline. Maximum fear! Great marketing. I bet it was written by AI.

Cui bono? Here comes the ‘security consultants’, regulators and foundations. For your safety.

lud

lud

For library maintainers specifically: Jonathan’s single recommendation is to enable private vulnerability reporting on GitHub (three clicks) and write a security policy. If Peter finds something in your library, this is how he reaches you privately before anything is public. Without it, disclosure gets significantly harder for everyone.

Good idea, I added a SECURITY.md and enabled private channel reporting on all my Elixir repos :slight_smile:

dimitarvp

dimitarvp

Can you break this down? I haven’t yet watched the video.

lud

lud

Sorry I forgot to add the quote to my answer! I was referring to that low hanging fruit of just enabling private reporting on github.

allenwyma

allenwyma

Still correct. Did you listen to the episode?

allenwyma

allenwyma

In short Peter started using LLMs to find massive vulnerabilities in the most used libs in the Erlang ecosystem. He discusses how he found them and Jonatan talks about how we should respond, how you can protect yourself as a maintainer and user, and he also discusses how the EEF is at a breaking point and needs help with handling CVEs in the long term.

AndyL

AndyL

Self-serving FUD, ambulance chaser vibe. “Give to my charitable foundation” (which pays me)

Here’s an alternative:

  • build a CVE tracking website (for the MVP: an afternoon’s work?)
  • auto-send CVE alert to the project maintainer
  • display aggregate stats for the public
  • keep a leader board of CVE reporters

Payoff for the website author and CVE reporters: reputation

Payoff for the community: transparency

LostKobrakai

LostKobrakai

Where does the CVE come from though. Sure you can build a tracking platform, but what the foundation built is actually being able to have CVE issued for our ecosystem in the first place - one controlled by people understanding our ecosystem.

These are the people with more work on their hands than time to deal with it. You’re free to think their claims are FUD, but their trackrecord of securing funding, becoming a CVE Numbering Authority – creating not just a CVE tracking page but one validating, scoring and issuing CVEs – working with the standards bodies involved in all that, working through the raising number of CVEs, handling communciation with maintainers and reporters. All these are real accomplishments of the foundation in recent years. These are the people telling you they’re understaffed and/or underfunded. What they do is not an lazy afternoon job.

If you don’t trust them the problem is real, there’s other reports of the same problems like e.g. of the maintainer of curl:

To your individual suggestions:

  • build a CVE tracking website (for the MVP: an afternoon’s work?)

We have something better: https://cna.erlef.org/. Not just a tracker, but an issuing body of CVEs.

  • auto-send CVE alert to the project maintainer

The point is that maintainers should be informed before CVEs are made public, so fixes are available at the time the CVE becomes public. Reporting is just a part of the work we need to deal with.

  • display aggregate stats for the public

This exists on https://cna.erlef.org/

  • keep a leader board of CVE reporters

That doesn’t seem to exist, but I’m very sure Peter Ullrich is at the top currently. I’m also sure there would be ways to calculate the data based on the APIs you get of https://cna.erlef.org/. You could try to build it. The website is also open source on Erlang Ecosystem Foundation CNA · GitHub.

That makes it sound like there’s no transparency. The foundation has been talking at conferences, creating blog posts (like this one), is free for people to join and attend the meetings and all their financials are public. I’m not sure what else you’re expecting in terms of transparency.

TLDR: It’s fine to think this is less urgent than stated, but making is sound like what the people at the foundation do is to be challenged by some random afternoon coding session doesn’t match reality.

11
Post #8
AndyL

AndyL

It’s fine to think this is less urgent than stated

I do believe the CVE problem is real. I just wonder why the heavy push towards a centralized organization with insider ‘experts’ that spread heavy FUD. Building a cadre of middle-manager / regulators should be an anti-goal. IMO the first impulse should be towards a lightweight/decentralized approach, which could be done readily.

josevalim

josevalim

Creator of Elixir

I understand AI can be divisive but this is not an accurate summary of the episode and both the EEF and Jonatan have done a lot of positive work for the community, especially when it comes to security.

You can criticize the process and the structure but it is unfair to describe the work they have done as FUD or a way to get funds. Let’s please respect each other.

  • You need to have a handful of people you can trust and are security experts to coordinate the whole process. The number of CVEs are going to increase in the short-medium term and the community will need assistance because it will be the first-time experience for many of us

  • Most funds related to security will require an organization and those funds are important for projects like Hex Security Audit

  • There is literally one person working on it today and yet it is being labelled as a cadre of middle-manager and bureaucracy

But most importantly, if you believe in a lightweight/decentralized approach, you can either:

  • engage constructively with the current process to improve it

  • or go ahead and build the solution you want to see: gather the funds (or don’t), perform security audits for important projects, establish your own CNA for Hex package owners, and reach out to maintainers

The only reason we have a podcast episode to listen to is because people are doing work for the community. So if we want to challenge them, we should put our work into it too.

Where Next? Top

Trending in Podcasts Top

PJUllrich
Announcing Macro Mayhem @gus and I have started a new podcast called Macro Mayhem! We cover Elixir news and general industry topics ever...
New
ancatrusca
Sharing the latest BEAM There, Done That episode. This one is genuinely historic - the people who built the JAM and early BEAM, telling t...
New
PJUllrich
Peter and Gus discuss the OTP emergency patches, Gleam Release, the Programming Nerves book update, and more on this week’s Macro Mayhem ...
New
ancatrusca
New BEAM There, Done That with Maxim Kharchenko, creator of Ling - not a BEAM fork, a clean Erlang VM implementation running on Xen with ...
New

Other Trending Topics Top

JesseHerrick
Hey, I’m Jesse and I’m the main contributor behind Dexter, a full-featured, lightning-fast Elixir LSP optimized for large codebases. It s...
New
jimsynz
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New
mcass19
ExRatatui lets you cook up rich terminal UIs in Elixir, powered by Rust’s ratatui via Rustler NIFs. Build interactive terminal applicatio...
New
Damirados
Hello everyone. After busy few months I am happy to announce v0.1.0 of Emerge & Solve. They are GUI (Emerge) and State management (S...
New
netoum
Corex is an accessible, unstyled UI component library for Phoenix that integrates Zag.js state machines using Vanilla JavaScript and Live...
New
ausimian
Emily is an Elixir library that runs Nx computations on Apple’s MLX. Install it as the default Nx backend and Nx, defn, Axon, Nx.Serving,...
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews