Skip to main content

CVE-2026-94620: CWE-22: Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal') in foundation50 classroom50

0
Critical
VulnerabilityCVE-2026-94620cvecve-2026-94620cwe-22cwe-59
Published: 10/01/2026 (10/01/2026, 15:38:09 UTC)
Source: CVE Database V5
Vendor/Project: foundation50
Product: classroom50

Description

Classroom 50 is a free and open-source tool for managing and grading programming assignments via GitHub. Prior to version 1.11.0, `gh teacher download` clones each student's assignment repository and then writes autograde artifacts (`result.json` and `results.json`) into the just-cloned working tree. The write followed symlinks, so a student who committed `result.json` or `results.json` as a **symlink** (materialized verbatim by `git clone`) could redirect the teacher's write to an arbitrary path — e.g. `~/.zshrc`, `~/.ssh/authorized_keys`, a cron file, or an in-clone `.git/hooks/*` file that git subsequently executes. The written bytes are attacker-controlled (the student's uploaded release asset for `result.json`; student-chosen submit-tag names for `results.json`). This is an arbitrary file write leading to code execution as the teacher, whose `gh` token carries `admin:org`, `repo`, and `workflow` across the entire classroom organization. Version 1.11.0 contains a patch. Some workarounds are available. Avoid running `gh teacher download` against untrusted student repositories, or run it inside a disposable sandbox / container with no access to sensitive host files or credentials. Inspect cloned trees for symlinked, hardlinked, or special (`result.json`/`results.json`) entries before allowing the artifact-refresh step to run.

CVSS v4.0

Score 9.4critical

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
Passive
Vuln. Confidentiality
High
Vuln. Integrity
High
Vuln. Availability
High
Subsq. Confidentiality
High
Subsq. Integrity
High
Subsq. Availability
High
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H

Affected software

foundation50

classroom50

Affected versions
<1.11.0
GitHub Actionsmore threats →ai
foundation50/classroom50
pkg:github/foundation50/classroom50
Affected versions
<1.11.0

Run on your own infrastructure? Check whether these packages are installed with threat-finder — our free open-source scanner.

AI-Powered Analysis

Machine-generated threat intelligence

AILast updated: 10/01/2026, 16:16:03 UTC

Technical Analysis

The vulnerability in classroom50 (CVE-2026-94620) is an improper limitation of pathname to a restricted directory (CWE-22) that allows arbitrary file write via symlink following. The `gh teacher download` command clones student assignment repositories and writes autograde artifacts (`result.json` and `results.json`) into the cloned working tree. If these files are symlinks, the tool writes to the symlink target paths, which can be arbitrary files such as shell configuration files, SSH authorized keys, cron files, or Git hooks. The attacker controls the content written, enabling code execution as the teacher. The teacher's `gh` token has broad privileges including `admin:org`, `repo`, and `workflow`. The issue is patched in version 1.11.0. Mitigations include sandboxing and manual inspection of cloned repositories.

Potential Impact

Successful exploitation allows an attacker (a student) to write arbitrary files on the teacher's system with the privileges of the teacher user. This can lead to code execution, unauthorized modification of sensitive files, and compromise of the teacher's GitHub organization credentials and workflows. The vulnerability is critical with a CVSS 4.0 score of 9.4, reflecting network attack vector, low attack complexity, no privileges required, user interaction needed, and high impact on confidentiality, integrity, availability, and security requirements.

Mitigation Recommendations

Version 1.11.0 of classroom50 contains an official patch that fixes this vulnerability. Users should upgrade to version 1.11.0 or later. Until patched, avoid running `gh teacher download` on untrusted student repositories. If necessary, run the command inside a disposable sandbox or container that restricts access to sensitive host files and credentials. Additionally, inspect cloned repositories for symlinked, hardlinked, or special files named `result.json` or `results.json` before proceeding with artifact writes.

Pro Console: star threats, build custom feeds, automate alerts via Slack, email & webhooks.Upgrade to Pro

Technical Details

Data Version
5.2
Assigner Short Name
GitHub_M
Date Reserved
2026-09-21T21:32:23.742Z
Cvss Version
4.0
State
PUBLISHED

Threat ID: 6abe83eca43b0b3b89c47def

Added to database: 10/01/2026, 16:01:48 UTC

Last enriched: 10/01/2026, 16:16:03 UTC

Last updated: 10/01/2026, 17:06:37 UTC

Views: 56

Community Reviews

0 reviews

Crowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.

Sort by
Loading community insights…

Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.

Actions

PRO

Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.

Please log in to the Console to use AI analysis features.

Need more coverage?

Upgrade to Pro Console for AI refresh and higher limits.

For incident response and remediation, OffSeq services can help resolve threats faster.

Latest Threats

Breach by OffSeqOFFSEQFRIENDS — 25% OFF

Check if your credentials are on the dark web

Instant breach scanning across billions of leaked records. Free tier available.

Scan now
OffSeq TrainingCredly Certified

Lead Pen Test Professional

Technical5-day eLearningPECB Accredited
View courses