# GHSA-9v78-h226-2rmq: Zendframework potential security issue in login mechanism

> Attackers can impersonate any OpenID identity by exploiting insufficient signature validation in the Zend OpenID Consumer component.

- **Severity:** Not scored
- **Exploited in the wild:** Not known
- **Login needed:** Not needed
- **Attackable:** Over the internet
- **Victim action needed:** A user has to click or open something
- **Fix available:** Yes
- **Published:** 7 Jun 2024

## What is GHSA-9v78-h226-2rmq?

GHSA-9v78-h226-2rmq is an authentication bypass vulnerability in zendframework/zendframework1, published on 7 Jun 2024. An attacker can exploit it over the internet without logging in, and only if a user opens a file or follows a link.

### Official description

Using the Consumer component of ZendOpenId (or Zend_OpenId in ZF1), it is possible to login using an arbitrary OpenID account (without knowing any secret information) by using a malicious OpenID Provider. That means OpenID it is possible to login using arbitrary OpenID Identity (MyOpenID, Google, etc), which are not under the control of our own OpenID Provider. Thus, we are able to impersonate any OpenID Identity against the framework.

Moreover, the Consumer accepts OpenID tokens with arbitrary signed elements. The framework does not check if, for example, both openid.claimed_id and openid.endpoint_url are signed. It is just sufficient to sign one parameter. According to https://openid.net/specs/openid-authentication-2_0.html#positive_assertions, at least op_endpoint, return_to, response_nonce, assoc_handle, and, if present in the response, claimed_id and identity, must be signed.

## Which versions are affected by GHSA-9v78-h226-2rmq?

2 open source packages ship an affected version, including zendframework/zendframework1.


| Package | Ecosystem | Affected | Fixed in |
| --- | --- | --- | --- |
| `zendframework/zendframework1` | Packagist | From 1.12.0 | 1.12.4 |
| `zendframework/zendframework1` | Packagist | From 1.12.0 | 1.12.4 |

## How do I fix GHSA-9v78-h226-2rmq?

Upgrade zendframework/zendframework1 to 1.12.4 or later.

## Is GHSA-9v78-h226-2rmq being exploited?

There is no known exploitation of GHSA-9v78-h226-2rmq in the wild and no public exploit code.

## Fix prompt for AI coding agents

```text
Check this codebase for GHSA-9v78-h226-2rmq and fix it if it is affected.

What it is: GHSA-9v78-h226-2rmq is an authentication bypass vulnerability in zendframework/zendframework1, published on 7 Jun 2024. An attacker can exploit it over the internet without logging in, and only if a user opens a file or follows a link.
Exploitation: There is no known exploitation of GHSA-9v78-h226-2rmq in the wild and no public exploit code.

Affected packages and fixed versions:
- zendframework/zendframework1 (Packagist): affected from 1.12.0; fixed in 1.12.4
- zendframework/zendframework1 (Packagist): affected from 1.12.0; fixed in 1.12.4

Task:
1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.
2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.
3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.
4. Run the tests and summarise what changed and why.
5. If nothing in the project is affected, say so and change nothing.

Reference: https://insights.sbomify.com/GHSA-9v78-h226-2rmq/ (Markdown: https://insights.sbomify.com/GHSA-9v78-h226-2rmq/index.md)
```

## Sources

- OSV: https://osv.dev/vulnerability/GHSA-9v78-h226-2rmq

---
From sbomify Insights: https://insights.sbomify.com/GHSA-9v78-h226-2rmq/
Summaries are generated and may contain mistakes; the official description above is the record.
