Safeguard
Vulnerability Analysis•

CVE-2026-31852: Jellyfin iOS CI Workflow Takeover Risk

CVE-2026-31852 is a critical GitHub Actions workflow flaw in jellyfin-ios. The project fixed its CI and rotated secrets, so end users need to do nothing.

Safeguard Security Team
3 min read

CVE-2026-31852 is a critical flaw, scored 10.0, in a GitHub Actions workflow of the jellyfin-ios repository, not in Jellyfin's runtime code. The advisory says CI workflows were changed and secrets rotated, and that end users do not need to take any action.

What's affected

The code-quality.yml workflow in the jellyfin/jellyfin-ios repository. The advisory states this is not a code vulnerability but a problem in GitHub Actions workflows.

There is no affected version range and no new release. The advisory says no new version is required and that end users do not need to do anything.

If you maintain your own fork of jellyfin-ios or copied this workflow pattern, the lesson applies to you even though the fix does not.

How to check if you're exposed

For Jellyfin users there is nothing to check. For maintainers of other projects, review your own workflows with the same question the advisory raises: can a pull request from a fork run code in a job that holds write permissions or secrets?

Open each file under .github/workflows and look at the trigger, the permissions block, and any step that checks out code from the pull request. A trigger that runs fork code with the repository's token deserves a close look.

What to do now

  1. Jellyfin end users: no action is needed, per the advisory.
  2. Maintainers: audit workflows that run on pull requests from forks and cut their permissions to the minimum.
  3. Keep secrets out of jobs that execute untrusted code, and prefer short lived credentials.
  4. Pin third party actions to full commit SHAs and review them when they change.
  5. Forks of jellyfin-ios should pull the project's updated workflows.

Why it matters

The record lists CWE-269, improper privilege management. The workflow ran pull request code from forks while holding nearly all write permissions. The advisory lists the possible outcomes in the project's own words: repository takeover, theft of privileged secrets, a supply chain attack through App Store updates, package poisoning in the container registry, and organization wide compromise through a shared token.

That is a long list from one misconfigured job, and it shows how much a CI token can reach. The project responded by changing workflows in all affected repositories and rotating secrets, which is the right response for a pipeline flaw.

I found no statement in the record or the advisory that this was exploited. The record does not flag this CVE as listed in CISA's Known Exploited Vulnerabilities catalog, and no advisory I read says it is exploited in the wild. Treat it as a patch to schedule promptly, not a fire drill, unless your own logs say otherwise.

Quick check

Do I need to update my Jellyfin server or app?

No. The advisory says no new version is required and end users do not need to take any action.

Why does a CI bug get a CVE?

Because the compromise of a build pipeline can lead to malicious releases. The score reflects that potential reach.

Sources

Last reviewed: 19 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.