microsoft / microsoft/hve-core

VEX: draft status for untriaged findings

Open
#2,370 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

agentic-workflows automated needs-triage security
Dominant language
Python
Stars
1.5k
Forks
301
Avg merge
3d 3h
Merged PRs (30d)
92

Description

## Summary

Drafts VEX statements for three untriaged `transformers@4.57.6` vulnerabilities detected in `scripts/evals/moderation/uv.lock` and reported in #2283. All three are present because the `transformers <5` constraint in `pyproject.toml` blocks upgrading to any of the fixed releases (5.0.0rc3, 5.0.0rc3, and 5.3.0 respectively).

| CVE | Aliases | Drafted Status | Confidence |
|-----|---------|----------------|------------|
| CVE-2026-1839 | GHSA-69w3-r845-3855 | `not_affected` | High |
| CVE-2025-14929 | PYSEC-2025-217 | `not_affected` | High |
| CVE-2026-4372 | GHSA-29pf-2h5f-8g72 | `under_investigation` | Medium |

**Document mutation:** version 2 → 3, `last_updated` set to 2026-07-03T15:14:19Z, `@id` regenerated.

> This is an AI-assisted draft. Every status determination — especially `not_affected` — must be independently validated by a CODEOWNERS-required human reviewer before merging. The merge commit author is the accountable author of record.

---

## Evidence Checklist

* [x] Code citations provided (file path and line range for reachability evidence per CVE)
* [x] Vulnerability details included (CVE ID, advisory URL, CVSS score per CVE)
* [x] Reachability analysis completed (import path traced, dead code confirmed, or mitigation identified)
* [x] Licensing compliance verified (data sourced from CC0/public domain sources; GHSA prose not quoted)
* [ ] Reviewed and validated by a qualified human reviewer

---

## CVE Assessments

### CVE-2026-1839

**Advisory:** https://github.com/advisories/GHSA-69w3-r845-3855
**CVSS:** 6.5 (CVSS:3.0/AV:L/AC:H/PR:N/UI:R/S:U/C:H/I:L/A:H) · CWE-502
**Fixed in:** transformers 5.0.0rc3

**VEX Status:**

* [x] `not_affected`

**Confidence Band:**

* [x] High: not_affected (vulnerable symbol provably unreachable)

**Impact Statement:**

The vulnerable symbol is `Trainer._load_rng_state()` (`src/transformers/trainer.py:3059`), which calls `torch.load()` without `weights_only=True`. This method belongs to the model-training API and is only invoked when fine-tuning or retraining a model from a checkpoint. The hve-core moderation eval (`scripts/evals/moderation/moderate.py`) is an inference-only pipeline: it imports only `from detoxify import Detoxify` (line 113) and calls `model.predict(text)` (line 126). No `Trainer` instantiation or checkpoint loading occurs anywhere in the pipeline or its test suite (`tests/test_moderate.py`). The attack path — supplying a malicious `rng_state.pth` checkpoint — cannot be triggered from this component. This assessment is also recorded in `scripts/evals/moderation/pip-audit-known-vulnerabilities.txt`.

---

### CVE-2025-14929

**Advisory:** (www.zerodayinitiative.com/redacted)
**CVSS:** 7.8 (reported by scanner) · PYSEC-2025-217
**Last affected:** transformers 5.0.0-rc0

**VEX Status:**

* [x] `not_affected`

**Confidence Band:**

* [x] High: not_affected (vulnerable symbol provably unreachable)

**Impact Statement:**

The vulnerability is in the X-CLIP checkpoint conversion utility (`src/transformers/models/xclip/`), a data-engineering tool for converting X-CLIP video-language model checkpoints. X-CLIP has no relationship to toxicity classification. The hve-core moderation eval loads BERT/ALBERT-based Detoxify models; model names are statically constrained to `['original', 'unbiased', 'multilingual']` by `argparse.choices` (`moderate.py` lines 49–53). No X-CLIP code, no checkpoint conversion, and no attacker-controlled model path are reachable from `moderate.py`. This assessment is also recorded in `scripts/evals/moderation/pip-audit-known-vulnerabilities.txt`.

---

### CVE-2026-4372

**Advisory:** https://github.com/advisories/GHSA-29pf-2h5f-8g72
**CVSS:** 7.8 (CVSS:3.0/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H) · CWE-502, CWE-1066
**Fixed in:** transformers 5.3.0

**VEX Status:**

* [x] `under_investigation`

**Confidence Band:**

* [x] Medium (symbol reachable in some configurations but ambiguous)

**Impact Statement:**

The advisory describes RCE triggered when `AutoModelForCausalLM.from_pretrained()` deserializes a `config.json` containing `_attn_implementation_internal` set to an attacker-controlled HuggingFace Hub repository ID, causing arbitrary Python code to be downloaded and executed. The hve-core moderation eval uses only BERT/ALBERT classification models via detoxify; model names are constrained to `['original', 'unbiased', 'multilingual']` by `argparse.choices`, preventing attacker-controlled model path injection at the CLI. The CVSS attack vector is local (AV:L), requiring physical access or filesystem write capability.

**Reviewer question:** Does `BertForSequenceClassification.from_pretrained()` in transformers 4.57.6 process the `_attn_implementation_internal` config key through the same deserialization path as `AutoModelForCausalLM`? Inspect `src/transformers/configuration_utils.py` and `src/transformers/models/bert/configuration_bert.py` in the 4.57.6 release tree. If BERT configs do not process this field, update status to `not_affected` with justification `vulnerable_code_not_in_execute_path`.

---

## Additional Context

- Detection issue: #2283
- Source lock file: `scripts/evals/moderation/uv.lock`
- Existing pip-audit notes: `scripts/evals/moderation/pip-audit-known-vulnerabilities.txt`
- Updated VEX document: `security/vex/hve-core.openvex.json` (version 3)

> Generated by [VEX Drafting](https://github.com/microsoft/hve-core/actions/runs/28669081853) · 90.8 AIC · ⌖ 25.4 AIC · ⊞ 9.3K · [◷](https://github.com/search?q=repo%3Amicrosoft%2Fhve-core+%22gh-aw-workflow-id%3A+vex-draft%22&type=pullrequests)

---

> [!NOTE]
> This was originally intended as a pull request, but GitHub Actions is not permitted to create or approve pull requests in this repository.
> The changes have been pushed to branch `vex/draft-untriaged-findings-2026-07-03-d1eb0c8ad4a0d11a`.
>
> **[Click here to create the pull request](https://github.com/microsoft/hve-core/compare/main...vex/draft-untriaged-findings-2026-07-03-d1eb0c8ad4a0d11a?expand=1&title=VEX%3A%20draft%20status%20for%20untriaged%20findings)**

To fix the permissions issue, go to **Settings** → **Actions** → **General** and enable **Allow GitHub Actions to create and approve pull requests**. See also: [gh-aw FAQ](https://github.github.com/gh-aw/reference/faq/#why-is-my-create-pull-request-workflow-failing-with-github-actions-is-not-permitted-to-create-or-approve-pull-requests)

Show patch preview (109 of 109 lines)

```diff
From b2d7c675987f13342bd4fd1c3ba5eeffd82806a0 Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
Date: Fri, 3 Jul 2026 15:19:29 +0000
Subject: [PATCH] security(vex): draft VEX status for untriaged transformers
findings (issue #2283)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Draft VEX statements for three untriaged transformers@4.57.6 vulnerabilities
detected in scripts/evals/moderation/uv.lock.

- CVE-2026-1839 (GHSA-69w3-r845-3855): not_affected
Trainer._load_rng_state() is never invoked; moderation eval is inference-only.
- CVE-2025-14929 (PYSEC-2025-217): not_affected
X-CLIP checkpoint conversion is unreachable; detoxify uses BERT/ALBERT models only.
- CVE-2026-4372 (GHSA-29pf-2h5f-8g72): under_investigation
AutoModelForCausalLM config deserialization; pending confirmation that BERT
configs in 4.57.6 do not process _attn_implementation_internal.

Document: version 2 → 3, last_updated 2026-07-03T15:14:19Z.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---
security/vex/hve-core.openvex.json | 67 ++++++++++++++++++++++++++++--
1 file changed, 64 insertions(+), 3 deletions(-)

diff --git a/security/vex/hve-core.openvex.json b/security/vex/hve-core.openvex.json
index 60dfd4c..7f13c4a 100644
--- a/security/vex/hve-core.openvex.json
+++ b/security/vex/hve-core.openvex.json
@@ -1,9 +1,70 @@
{
"@context": "https://openvex.dev/ns/v0.2.0",
- "@id": "https://github.com/microsoft/hve-core/security/vex/2026-06-19",
+ "@id": "https://github.com/microsoft/hve-core/security/vex/2026-07-03",
"author": "Microsoft HVE Core Maintainers",
"timestamp": "2026-06-19T00:00:00Z",
- "version": 2,
+ "last_updated": "2026-07-03T15:14:19Z",
+ "version": 3,
"tooling": "Maintained via the hve-core VEX Generator agent (AI-assisted drafting) with human review and merge; published and Sigstore-attested by the release-stable.yml workflow.",
- "statem
... (truncated)
```

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with security/vex/hve-core.openvex.json and the moderation entry points in scripts/evals/moderation/moderate.py and tests/test_moderate.py. Inspect transformers 4.57.6 in configuration_utils.py and models/bert/configuration_bert.py to answer whether BERT processes _attn_implementation_internal. Done means independently validating all three statuses, resolving the reviewer question, and updating the VEX document with qualified human review.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
documentation, security
Issue type
Documentation
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.