GHSA-mg4x-prh7-g4mx
Zend-Captcha Information Disclosure and Insufficient Entropy vulnerability
In Zend Framework, Zend_Captcha_Word (v1) and Zend\Captcha\Word (v2) generate a "word" for a CAPTCHA challenge by selecting a sequence of random letters from a character set. Prior to this advisory, the selection was performed using PHP's internal array_rand() function. This function does not generate sufficient entropy due to its usage of rand() instead of more cryptographically secure methods such as openssl_pseudo_random_bytes(). This could potentially lead to information disclosure should an attacker be able to brute force the random number generation.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- High
- Integrity
- None
- Availability
- None
What each source reports
GitHub Advisories Score used 7.5
Zend-Captcha Information Disclosure and Insufficient Entropy vulnerability
In Zend Framework, Zend_Captcha_Word (v1) and Zend\Captcha\Word (v2) generate a "word" for a CAPTCHA challenge by selecting a sequence of random letters from a character set. Prior to this advisory, the selection was performed using PHP's internal array_rand() function. This function does not generate sufficient entropy due to its usage of rand() instead of more cryptographically secure methods such as openssl_pseudo_random_bytes(). This could potentially lead to information disclosure should an attacker be able to brute force the random number generation.
- Record
GHSA-mg4x-prh7-g4mx- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N - Weakness
- CWE-331
- Updated
- 2026-11-02
OSV 7.5
Zend-Captcha Information Disclosure and Insufficient Entropy vulnerability
In Zend Framework, Zend_Captcha_Word (v1) and Zend\Captcha\Word (v2) generate a "word" for a CAPTCHA challenge by selecting a sequence of random letters from a character set. Prior to this advisory, the selection was performed using PHP's internal array_rand() function. This function does not generate sufficient entropy due to its usage of rand() instead of more cryptographically secure methods such as openssl_pseudo_random_bytes(). This could potentially lead to information disclosure should an attacker be able to brute force the random number generation.
- Record
GHSA-mg4x-prh7-g4mx- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N - Weakness
- CWE-331
- Updated
- 2026-11-02
Affected packages
| Package | Affected | Fixed |
|---|---|---|
zendframework/zend-captchaPackagist | 2.0.0 up to 2.4.9 | 2.4.9 |
zendframework/zend-captchaPackagist | 2.5.0 up to 2.5.2 | 2.5.2 |
zendframework/zend-captchaPackagist | 2.0.0 up to 2.4.9, plus listed versions 2.0.32.0.42.0.52.0.62.0.7 Show 45 moreShow less2.0.82.1.02.1.12.1.22.1.32.1.42.1.52.1.62.2.02.2.0rc12.2.0rc22.2.0rc32.2.12.2.102.2.22.2.32.2.42.2.52.2.62.2.72.2.82.2.92.3.02.3.12.3.22.3.32.3.42.3.52.3.62.3.72.3.82.3.92.4.02.4.0rc12.4.0rc22.4.0rc32.4.0rc42.4.0rc52.4.0rc62.4.0rc72.4.12.4.22.4.32.4.42.4.5 | 2.4.9 |
zendframework/zend-captchaPackagist | 2.5.0 up to 2.5.2, plus listed versions 2.5.1 | 2.5.2 |
History
| Recorded | Changed | Sources |
|---|---|---|
| first indexed | GitHub Advisories, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
GHSA-mg4x-prh7-g4mx is a high vulnerability (CVSS 7.5) in zendframework/zend-captcha, published June 7, 2024. No source lists public exploit code. Fixed in zendframework/zend-captcha 2.4.9.
References
github.com/zendframework/zend-captcha/commit/43c276df6e94e498bf530538aea53876a24fc47c
github.com/zendframework/zend-captcha/commit/5561ef813bb4ad814e835343289dc5077d2eb262
framework.zend.com/security/advisory/ZF2015-09
github.com/FriendsOfPHP/security-advisories/blob/master/zendframework/zend-captcha/ZF2015-09.yaml
github.com/advisories/GHSA-mg4x-prh7-g4mx
github.com/zendframework/zend-captcha
Left out here: 3 versions. The JSON record has them.