Vulnerability Database

383,371

Total vulnerabilities in the database

CVE-2009-3871 — sun / jdk

Improper Restriction of Operations within the Bounds of a Memory Buffer

Heap-based buffer overflow in the setBytePixels function in the Abstract Window Toolkit (AWT) in Java Runtime Environment (JRE) in Sun Java SE in JDK and JRE 5.0 before Update 22, JDK and JRE 6 before Update 17, SDK and JRE 1.3.x before 1.3.1_27, and SDK and JRE 1.4.x before 1.4.2_24 allows remote attackers to execute arbitrary code via crafted arguments, aka Bug Id 6872358.

  • Published: Nov 5, 2009
  • Updated: Sep 13, 2026
  • CVE: CVE-2009-3871
  • Severity: High
  • Exploit:
  • CISA KEV:

CVSS v2:

  • Severity: High
  • Score: 9.3
  • AV:N/AC:M/Au:N/C:C/I:C/A:C

CWEs:

Software Affected versions
sun / jdk = 1.5.0-update_1
sun / jdk = 1.5.0-update_10
sun / jdk = 1.5.0-update_11
sun / jdk = 1.5.0-update_12
sun / jdk = 1.5.0-update_13
sun / jdk = 1.5.0-update_14
sun / jdk = 1.5.0-update_15
sun / jdk = 1.5.0-update_16
sun / jdk = 1.5.0-update_17
sun / jdk = 1.5.0-update_18
sun / jdk = 1.5.0-update_19
sun / jdk = 1.5.0-update_2
sun / jdk = 1.5.0-update_20
sun / jdk = 1.5.0-update_21
sun / jdk = 1.5.0-update_3
sun / jdk = 1.5.0-update_4
sun / jdk = 1.5.0-update_5
sun / jdk = 1.5.0-update_6
sun / jdk = 1.5.0-update_7
sun / jdk = 1.5.0-update_8
sun / jdk = 1.5.0-update_9
sun / jdk = 1.6.0-update_1
sun / jdk = 1.6.0-update_10
sun / jdk = 1.6.0-update_11
sun / jdk = 1.6.0-update_12
sun / jdk = 1.6.0-update_13
sun / jdk = 1.6.0-update_14
sun / jdk = 1.6.0-update_15
sun / jdk = 1.6.0-update_16
sun / jdk = 1.6.0-update_3
sun / jdk = 1.6.0-update_4
sun / jdk = 1.6.0-update_5
sun / jdk = 1.6.0-update_6
sun / jdk = 1.6.0-update_7
sun / jdk = 1.6.0-update_8
sun / jdk = 1.6.0-update_9
sun / jre = 1.5.0-update_1
sun / jre = 1.5.0-update_11
sun / jre = 1.5.0-update_12
sun / jre = 1.5.0-update_13
sun / jre = 1.5.0-update_14
sun / jre = 1.5.0-update_15
sun / jre = 1.5.0-update_16
sun / jre = 1.5.0-update_17
sun / jre = 1.5.0-update_18
sun / jre = 1.5.0-update_19
sun / jre = 1.5.0-update_2
sun / jre = 1.5.0-update_20
sun / jre = 1.5.0-update_21
sun / jre = 1.5.0-update_3
sun / jre = 1.5.0-update_4
sun / jre = 1.5.0-update_5
sun / jre = 1.5.0-update_6
sun / jre = 1.5.0-update_7
sun / jre = 1.5.0-update_8
sun / jre = 1.5.0-update_9
sun / jre = 1.6.0-update_1
sun / jre = 1.6.0-update_10
sun / jre = 1.6.0-update_11
sun / jre = 1.6.0-update_12
sun / jre = 1.6.0-update_13
sun / jre = 1.6.0-update_14
sun / jre = 1.6.0-update_15
sun / jre = 1.6.0-update_16
sun / jre = 1.6.0-update_2
sun / jre = 1.6.0-update_3
sun / jre = 1.6.0-update_4
sun / jre = 1.6.0-update_5
sun / jre = 1.6.0-update_6
sun / jre = 1.6.0-update_7
sun / jre = 1.6.0-update_8
sun / jre = 1.6.0-update_9
sun / jre = 1.4.2_1
sun / jre = 1.4.2_2
sun / jre = 1.4.2_02
sun / jre = 1.4.2_03
sun / jre = 1.4.2_3
sun / jre = 1.4.2_4
sun / jre = 1.4.2_04
sun / jre = 1.4.2_05
sun / jre = 1.4.2_5
sun / jre = 1.4.2_06
sun / jre = 1.4.2_6
sun / jre = 1.4.2_7
sun / jre = 1.4.2_07
sun / jre = 1.4.2_8
sun / jre = 1.4.2_08
sun / jre = 1.4.2_09
sun / jre = 1.4.2_9
sun / jre = 1.4.2_10
sun / jre = 1.4.2_11
sun / jre = 1.4.2_12
sun / jre = 1.4.2_13
sun / jre = 1.4.2_14
sun / jre = 1.4.2_15
sun / jre = 1.4.2_16
sun / jre = 1.4.2_17
sun / jre = 1.4.2_18
sun / jre = 1.4.2_19
sun / jre = 1.4.2_20
sun / jre = 1.4.2_21
sun / jre = 1.4.2_22
sun / sdk = 1.4.2_01
sun / sdk = 1.4.2_1
sun / sdk = 1.4.2_2
sun / sdk = 1.4.2_02
sun / sdk = 1.4.2_03
sun / sdk = 1.4.2_3
sun / sdk = 1.4.2_04
sun / sdk = 1.4.2_4
sun / sdk = 1.4.2_5
sun / sdk = 1.4.2_05
sun / sdk = 1.4.2_6
sun / sdk = 1.4.2_06
sun / sdk = 1.4.2_07
sun / sdk = 1.4.2_7
sun / sdk = 1.4.2_8
sun / sdk = 1.4.2_08
sun / sdk = 1.4.2_09
sun / sdk = 1.4.2_9
sun / sdk = 1.4.2_10
sun / sdk = 1.4.2_11
sun / sdk = 1.4.2_12
sun / sdk = 1.4.2_13
sun / sdk = 1.4.2_14
sun / sdk = 1.4.2_15
sun / sdk = 1.4.2_16
sun / sdk = 1.4.2_17
sun / sdk = 1.4.2_18
sun / sdk = 1.4.2_19
sun / sdk = 1.4.2_20
sun / sdk = 1.4.2_21
sun / sdk = 1.4.2_22
sun / jre = 1.3.1_1
sun / jre = 1.3.1_01
sun / jre = 1.3.1_01a
sun / jre = 1.3.1_02
sun / jre = 1.3.1_2
sun / jre = 1.3.1_03
sun / jre = 1.3.1_3
sun / jre = 1.3.1_4
sun / jre = 1.3.1_04
sun / jre = 1.3.1_05
sun / jre = 1.3.1_5
sun / jre = 1.3.1_06
sun / jre = 1.3.1_6
sun / jre = 1.3.1_07
sun / jre = 1.3.1_7
sun / jre = 1.3.1_8
sun / jre = 1.3.1_08
sun / jre = 1.3.1_9
sun / jre = 1.3.1_09
sun / jre = 1.3.1_10
sun / jre = 1.3.1_11
sun / jre = 1.3.1_12
sun / jre = 1.3.1_13
sun / jre = 1.3.1_14
sun / jre = 1.3.1_15
sun / jre = 1.3.1_16
sun / jre = 1.3.1_17
sun / jre = 1.3.1_18
sun / jre = 1.3.1_19
sun / jre = 1.3.1_20
sun / jre = 1.3.1_21
sun / jre = 1.3.1_22
sun / jre = 1.3.1_23
sun / jre = 1.3.1_24
sun / jre = 1.3.1_25
sun / sdk = 1.3.1_01
sun / sdk = 1.3.1_01a
sun / sdk = 1.3.1_2
sun / sdk = 1.3.1_02
sun / sdk = 1.3.1_03
sun / sdk = 1.3.1_3
sun / sdk = 1.3.1_4
sun / sdk = 1.3.1_04
sun / sdk = 1.3.1_5
sun / sdk = 1.3.1_05
sun / sdk = 1.3.1_6
sun / sdk = 1.3.1_06
sun / sdk = 1.3.1_7
sun / sdk = 1.3.1_07
sun / sdk = 1.3.1_8
sun / sdk = 1.3.1_08
sun / sdk = 1.3.1_9
sun / sdk = 1.3.1_09
sun / sdk = 1.3.1_10
sun / sdk = 1.3.1_11
sun / sdk = 1.3.1_12
sun / sdk = 1.3.1_13
sun / sdk = 1.3.1_14
sun / sdk = 1.3.1_15
sun / sdk = 1.3.1_16
sun / sdk = 1.3.1_17
sun / sdk = 1.3.1_18
sun / sdk = 1.3.1_19
sun / sdk = 1.3.1_20
sun / sdk = 1.3.1_21
sun / sdk = 1.3.1_22
sun / sdk = 1.3.1_23
sun / sdk = 1.3.1_24
sun / sdk = 1.3.1_25
sun / jdk = 1.6.0-update2
sun / jre = 1.4.2_01

Frequently Asked Questions

A security vulnerability is a weakness in software, hardware, or configuration that can be exploited to compromise confidentiality, integrity, or availability. Many vulnerabilities are tracked as CVEs (Common Vulnerabilities and Exposures), which provide a standardized identifier so teams can coordinate patching, mitigation, and risk assessment across tools and vendors.

CVSS (Common Vulnerability Scoring System) estimates technical severity, but it doesn't automatically equal business risk. Prioritize using context like internet exposure, affected asset criticality, known exploitation (proof-of-concept or in-the-wild), and whether compensating controls exist. A "Medium" CVSS on an exposed, production system can be more urgent than a "Critical" on an isolated, non-production host.

A vulnerability is the underlying weakness. An exploit is the method or code used to take advantage of it. A zero-day is a vulnerability that is unknown to the vendor or has no publicly available fix when attackers begin using it. In practice, risk increases sharply when exploitation becomes reliable or widespread.

Recurring findings usually come from incomplete Asset Discovery, inconsistent patch management, inherited images, and configuration drift. In modern environments, you also need to watch the software supply chain: dependencies, containers, build pipelines, and third-party services can reintroduce the same weakness even after you patch a single host. Unknown or unmanaged assets (often called Shadow IT) are a common reason the same issues resurface.

Use a simple, repeatable triage model: focus first on externally exposed assets, high-value systems (identity, VPN, email, production), vulnerabilities with known exploits, and issues that enable remote code execution or privilege escalation. Then enforce patch SLAs and track progress using consistent metrics so remediation is steady, not reactive.

SynScan combines attack surface monitoring and continuous security auditing to keep your inventory current, flag high-impact vulnerabilities early, and help you turn raw findings into a practical remediation plan.