Back to News
Advertisement
Advertisement

⚡ Community Insights

Discussion Sentiment

25% Positive

Analyzed from 1000 words in the discussion.

Trending Topics

#github#snowflake#actions#com#injection#code#title#https#workflows#change

Discussion (35 Comments)Read Original on HackerNews

inahga13 minutes ago
I probably would have made the same mistake. It is negligent to write GitHub Actions without using static analysis.

Use zizmor in CI https://github.com/zizmorcore/zizmor

    error[template-injection]: code injection via template expansion
      --> .github/workflows/jira_issue.yml:24:29
       |
    22 |         run: |
       |         --- this run block
    23 |           # Escape special characters in title and body
    24 |           TITLE=$(echo '${{ github.event.issue.title }}' | sed 's/"/\\"/g' | sed "s/'/\\\'/g")
       |                             ^^^^^^^^^^^^^^^^^^^^^^^^ may expand into attacker-controllable code
       |
       = note: audit confidence → High
       = note: this finding has an auto-fix
mjr00about 1 hour ago
It's interesting to look at what was being attempted when the vulnerability was introduced[0]

> Workflows like jira_close.yml use deprecated atlassian JIRA actions and have a dependency on the gh-actions repo. This is not ideal and unecessarily complex. PR updates jira_close workflow to use direct API calls via curl. It preserves custom fields used too.

I won't speak to this projects' management and how they prioritize things, but from my own experience, pre-AI, this type of change would have been firmly in the "this is a minor annoyance, put it in the Tech Debt Backlog alongside the 50000 other tickets" and never actually done. The cost of a human investing the time understanding how to fix the problem, doing code changes, testing them, and deploying them is just way too high for what actual value this change brings, which is close to nothing.

Now with AI, it's as simple as firing up an agent and telling them to make a change; as much effort as writing that backlog Jira ticket in the first place.

Similar to the problem open source is having with low-value PRs, companies are going to have to start realizing that code is not free to review or maintain, even when it's generated for ~free, in their internal processes. Just because an agent can fix a minor tech debt annoyance with a few lines of instructions doesn't mean it should.

[0] https://github.com/snowflakedb/snowflake-connector-net/pull/...

fg1378 minutes ago
I have seen plenty of "my backlog has never been shorter" comments here.

I'm interested in how that turns out 6 months later.

In my team, we have plenty of enhancement requests from users. We address those that make obvious sense and are trivial to do but withhold from others, even though the code change itself is likely small. Because we don't know if there is more than a single user that can actually benefit from it, if it has unintended consequences, or if it causes maintainence issue down the road.

sippeangeloabout 2 hours ago
The title is actually "Wiz Red Agent Finds Its Way Into Snowflake’s Internal Jira Due to an AI-Generated GitHub Copilot Autofix"
galnagliabout 1 hour ago
Too long for hackernews :(
proconeabout 1 hour ago
YAML is a nightmare fuel spec.

In its quest to make markup "human readable", it has created countless footguns.

I honestly prefer XML at this point.

hbn10 minutes ago
I never figured out how the hell to write YAML and I definitely won't now that I trust the AI to do a better job than me. It's so unintuitive.

Every time I've tried in the past, something as simple as making a value a list had some nonsense expectations. I can't wrap my head around how that spec got any traction and wasn't laughed off the face of the earth the first time it was looked at by someone who didn't create it.

anonymars38 minutes ago
In a similar vein, JSON's lack of comments makes me marvel at how consistently JavaScript seems to choose the worse option. I'm oh so glad it found its way into config files
fmbbabout 1 hour ago
It’s find for actions and workflows as long as you do no interpolation and logic.

Better move as much of that as possible into your own scripts. And your scripts can be portable between forges, and even run locally!

NewJazz43 minutes ago
Assigning an env var to an empty variable (env: { myvar: ${{unsetfoo}} }) should trigger an error, not silently pass an empty string.
ezfe37 minutes ago
What does that have to do with YAML?
RHSeeger29 minutes ago
The YAML spec/parse _itself_ does interpolation and logic - incorrectly in some cases. YAML is pretty much never the right solution.
formerly_proven16 minutes ago
> It’s find for actions and workflows as long as you do no interpolation and logic.

How do you specify actions and workflows without interpolation and logic kind sir?

cgannett34 minutes ago
And thus procone spoketh the truth.
codeduck33 minutes ago
In accordance with the prophecy.
vultour42 minutes ago
The first linked PR (#1218) has only one commit co-authored by Copilot and it's not related to the vulnerability, and neither are the other suggestions in the PR. Am I missing something?
galnagli25 minutes ago
Github is having some problems -- will check! thanks a lot!
teraflopabout 1 hour ago
> The workflow had an if: condition that appeared protective:

> if: (github.event_name == 'issues' && github.event.pull_request.user.login != 'whitesource-for-github-com[bot]')

> However, on issues events, github.event.pull_request is always null.

This is extra dumb because even if you thought this condition was correctly testing the user's identity, it shouldn't have "appeared protective" upon even a moment's thought. If it worked correctly, it would obviously just exclude one bot user while allowing all other users, so it wouldn't provide any protection at all.

But more likely, this condition was never intended to be "protective" at all, and it's only being described that way because the writeup is LLM slop.

chrisjjabout 1 hour ago
> a single quote in the title breaks out of echo '...' and allows arbitrary command execution.

Quote injection still alive and well in 2026. Gawd.

TheRealPomaxabout 1 hour ago
No, Snowflake allowing autofixes compromised their Jira. If you tell someone to shoot you in the foot, and they shoot you in the foot, you shot yourself in the foot, just with more steps. If someone else finds the memo that says you've set up foot shooting as a service, and then they trigger that service, you still shot yourself in the foot.
rawgabbit33 minutes ago
Help me understand. Snowflake configured their Github repo to allow auto fixes by Copilot. It got merged automatically without anyone's review? And introduced essentially script-injection vulnerability through the title field?

If this is the case, I would say Snowflake should shut down its repo and get off Github asap.

rafram6 minutes ago
No. A Snowflake maintainer opened a PR, Copilot suggested a change (introducing a vulnerability), the maintainer accepted and committed it to their PR, and another Snowflake maintainer approved and merged the PR.
forestryabout 2 hours ago
Peer review of changes is still important.
Rumudiezabout 1 hour ago
Multi-model cross-review is important
_joel37 minutes ago
I'm all for using a council of LLMs, I wrote a tool for it https://github.com/joelio/owl - but you still need to read through PRs yourself, at the very least.
acedTrexabout 1 hour ago
It's not actually, thats just shoving more shit into the shit pipeline.

Humans need to review this stuff yall there's no way around that, apparently to some, very inconvenient reality.

devinabout 1 hour ago
It’s clear that they want this to be true so bad that they’re just not going to do it, and will spend a ton of money on quality gates and mitigation strategies instead of just reading some code.
Twirrimabout 1 hour ago
You can't rely on people spotting the significance of such changes
eithedabout 1 hour ago
Tests would have caught it = https://github.com/rhysd/actionlint injection check
thejoshabout 1 hour ago
also been a huge fan of zizmor (https://github.com/zizmorcore/zizmor) lately, basically: "am I going to footgun myself?"
dv_dtabout 1 hour ago
I have been talking to people who want to autoreview and approve "minor" AI prs. For security especially, I think if the models weren't enough to prevent the issues, they aren't enough to judge what is minor.
fn-moteabout 1 hour ago
^^

Absolutely.

Nothing in the PR jumps out as a red flag. Unless you know how the internals work, I suppose.

larsonian24 minutes ago
Are you kidding? It's a very obvious case of quote injection. Not some subtle race condition or anything.
chrisjjabout 1 hour ago
> Nothing in the PR jumps out as a red flag.

Made by AI?

antiloperabout 1 hour ago
Someone forgot to add "make no mistakes!" when triggering autofix /s