CVE Vulnerabilities

CVE-2008-2020

Use of Insufficiently Random Values

Published: Apr 30, 2008 | Modified: Feb 14, 2024
CVSS 3.x
7.5
HIGH
Source:
NVD
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
CVSS 2.x
6.8 MEDIUM
AV:N/AC:M/Au:N/C:P/I:P/A:P
RedHat/V2
RedHat/V3
Ubuntu

The CAPTCHA implementation as used in (1) Francisco Burzi PHP-Nuke 7.0 and 8.1, (2) my123tkShop e-Commerce-Suite (aka 123tkShop) 0.9.1, (3) phpMyBitTorrent 1.2.2, (4) TorrentFlux 2.3, (5) e107 0.7.11, (6) WebZE 0.5.9, (7) Open Media Collectors Database (aka OpenDb) 1.5.0b4, and (8) Labgab 1.1 uses a code_bg.jpg background image and the PHP ImageString function in a way that produces an insufficient number of different images, which allows remote attackers to pass the CAPTCHA test via an automated attack using a table of all possible image checksums and their corresponding digit strings.

Weakness

The product uses insufficiently random numbers or values in a security context that depends on unpredictable numbers.

Affected Software

Name Vendor Start Version End Version
E107 E107 0.7.11 (including) 0.7.11 (including)
Labgab Labgab 1.1 (including) 1.1 (including)
E-commerce-suite My123tkshop 0.9.1 (including) 0.9.1 (including)
Opendb Opendb 1.5.0-beta4 (including) 1.5.0-beta4 (including)
Phpmybittorrent Phpmybittorrent 1.2.2 (including) 1.2.2 (including)
Php-nuke Phpnuke 7.0 (including) 7.0 (including)
Php-nuke Phpnuke 8.1 (including) 8.1 (including)
Torrentflux Torrentflux_project 2.3 (including) 2.3 (including)
Webze Webze 0.5.9 (including) 0.5.9 (including)

Potential Mitigations

  • Use a well-vetted algorithm that is currently considered to be strong by experts in the field, and select well-tested implementations with adequate length seeds.
  • In general, if a pseudo-random number generator is not advertised as being cryptographically secure, then it is probably a statistical PRNG and should not be used in security-sensitive contexts.
  • Pseudo-random number generators can produce predictable numbers if the generator is known and the seed can be guessed. A 256-bit seed is a good starting point for producing a “random enough” number.

References