{"id":"GHSA-mg4x-prh7-g4mx","aliases":[],"status":"published","title":"Zend-Captcha Information Disclosure and Insufficient Entropy vulnerability","description":"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.","severity":{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","level":"high","from":"ghsa"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-331"],"published":"2024-06-07T22:25:12Z","modified":"2024-12-04T05:36:22Z","fixes":[{"ecosystem":"Packagist","package":"zendframework/zend-captcha","fixed_in":["2.4.9","2.5.2"],"sources":["ghsa","osv"]}],"affected":[{"source":"ghsa","ecosystem":"Packagist","package":"zendframework/zend-captcha","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.0.0"},{"fixed":"2.4.9"}]}]},{"source":"ghsa","ecosystem":"Packagist","package":"zendframework/zend-captcha","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.5.0"},{"fixed":"2.5.2"}]}]},{"source":"osv","ecosystem":"Packagist","package":"zendframework/zend-captcha","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.0.0"},{"fixed":"2.4.9"}]}],"versions":["2.0.3","2.0.4","2.0.5","2.0.6","2.0.7","2.0.8","2.1.0","2.1.1","2.1.2","2.1.3","2.1.4","2.1.5","2.1.6","2.2.0","2.2.0rc1","2.2.0rc2","2.2.0rc3","2.2.1","2.2.10","2.2.2","2.2.3","2.2.4","2.2.5","2.2.6","2.2.7","2.2.8","2.2.9","2.3.0","2.3.1","2.3.2","2.3.3","2.3.4","2.3.5","2.3.6","2.3.7","2.3.8","2.3.9","2.4.0","2.4.0rc1","2.4.0rc2","2.4.0rc3","2.4.0rc4","2.4.0rc5","2.4.0rc6","2.4.0rc7","2.4.1","2.4.2","2.4.3","2.4.4","2.4.5","2.4.6","2.4.7","2.4.8"]},{"source":"osv","ecosystem":"Packagist","package":"zendframework/zend-captcha","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.5.0"},{"fixed":"2.5.2"}]}],"versions":["2.5.0","2.5.1"]}],"references":[{"url":"https://github.com/zendframework/zend-captcha/commit/43c276df6e94e498bf530538aea53876a24fc47c","tags":["web"]},{"url":"https://github.com/zendframework/zend-captcha/commit/5561ef813bb4ad814e835343289dc5077d2eb262","tags":["web"]},{"url":"https://framework.zend.com/security/advisory/ZF2015-09","tags":["web"]},{"url":"https://github.com/FriendsOfPHP/security-advisories/blob/master/zendframework/zend-captcha/ZF2015-09.yaml","tags":["web"]},{"url":"https://github.com/advisories/GHSA-mg4x-prh7-g4mx"},{"url":"https://github.com/zendframework/zend-captcha","tags":["package"]}],"sources":{"ghsa":[{"id":"GHSA-mg4x-prh7-g4mx","title":"Zend-Captcha Information Disclosure and Insufficient Entropy vulnerability","description":"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.","status":"published","published":"2024-06-07T22:25:12Z","modified":"2024-06-07T22:25:12Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","level":"high"}],"cwes":["CWE-331"],"updated_at":"2026-11-02T14:37:54.624184Z"}],"osv":[{"id":"GHSA-mg4x-prh7-g4mx","title":"Zend-Captcha Information Disclosure and Insufficient Entropy vulnerability","description":"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.","status":"published","published":"2024-06-07T22:25:12Z","modified":"2024-12-04T05:36:22.994493Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","level":"high"}],"cwes":["CWE-331"],"updated_at":"2026-11-02T15:46:51.811331Z"}]}}
