보μ μ·¨μ½μ (Vulnerability)
Github Advisory Databaseμλ Mavenμ λν΄ μ½ 3800κ°μ μ·¨μ½μ μ λ³΄κ° μλ€. νμ¬μμ μλΉμ€ λͺ¨λν°λ§μ μν μμ€ν μ΄ κ΅¬μΆλμ΄μμ§λ μμ§λ§ μμμ μΌλ‘ λ΄λ λ¦μ μ μ©ν νκ²½μ΄ μμ΄ APM & Servicesμ Vulnerability Management λ©λ΄μμ 보μ μ·¨μ½μ μ 보λ₯Ό νμΈν μ μμλ€. μ°μ 체ν¬λ 보μ μ·¨μ½μ μ 58κ°λ‘ CRITICAL 6κ°, HIGH 25κ°, MEDIUM 21κ°, LOW 6κ° μ΄λ€.
Vulnerability
name | severity | exploitable | issueId |
---|---|---|---|
Pivotal Spring Framework contains unsafe Java deserialization methods | CRITICAL | FALSE | CVE-2016-1000027 |
Deserialization of Untrusted Data in org.codehaus.jackson:jackson-mapper-asl | CRITICAL | FALSE | CVE-2019-10202 |
Template injection in thymeleaf-spring5 | CRITICAL | FALSE | CVE-2021-43466 |
Remote Code Execution in Spring Framework | CRITICAL | FALSE | CVE-2022-22965 |
Undertow client not checking server identity presented by server certificate in https connections | CRITICAL | FALSE | CVE-2022-4492 |
Spring Boot Security Bypass with Wildcard Pattern Matching on Cloud Foundry | CRITICAL | FALSE | CVE-2023-20873 |
More
name | severity | exploitable | issueId |
---|---|---|---|
Pivotal Spring Framework contains unsafe Java deserialization methods | CRITICAL | FALSE | CVE-2016-1000027 |
Deserialization of Untrusted Data in org.codehaus.jackson:jackson-mapper-asl | CRITICAL | FALSE | CVE-2019-10202 |
Template injection in thymeleaf-spring5 | CRITICAL | FALSE | CVE-2021-43466 |
Remote Code Execution in Spring Framework | CRITICAL | FALSE | CVE-2022-22965 |
Undertow client not checking server identity presented by server certificate in https connections | CRITICAL | FALSE | CVE-2022-4492 |
Spring Boot Security Bypass with Wildcard Pattern Matching on Cloud Foundry | CRITICAL | FALSE | CVE-2023-20873 |
Arbitrary code execution in Apache Commons BeanUtils | HIGH | FALSE | CVE-2014-0114 |
Insecure Deserialization in Apache Commons Beanutils | HIGH | FALSE | CVE-2019-10086 |
Improper Restriction of XML External Entity Reference in jackson-mapper-asl | HIGH | FALSE | CVE-2019-10172 |
Deeply nested json in jackson-databind | HIGH | FALSE | CVE-2020-36518 |
Undertow Uncontrolled Resource Consumption | HIGH | FALSE | CVE-2021-3629 |
Uncaught Exception in jsoup | HIGH | FALSE | CVE-2021-37714 |
Undertow vulnerable to Denial of Service (DoS) attacks | HIGH | FALSE | CVE-2021-3859 |
jackson-databind possible Denial of Service if using JDK serialization to serialize JsonNode | HIGH | FALSE | CVE-2021-46877 |
SnakeYaml Constructor Deserialization Remote Code Execution | HIGH | FALSE | CVE-2022-1471 |
Undertow vulnerable to Dos via Large AJP request | HIGH | FALSE | CVE-2022-2053 |
pgjdbc Does Not Check Class Instantiation when providing Plugin Classes | HIGH | FALSE | CVE-2022-21724 |
Improper handling of case sensitivity in Spring Framework | HIGH | FALSE | CVE-2022-22968 |
Denial of service in Spring Framework | HIGH | FALSE | CVE-2022-22970 |
Deserialization of Untrusted Data in Gson | HIGH | FALSE | CVE-2022-25647 |
Uncontrolled Resource Consumption in snakeyaml | HIGH | FALSE | CVE-2022-25857 |
Partial Path Traversal in com.amazonaws:aws-java-sdk-s3 | HIGH | FALSE | CVE-2022-31159 |
PostgreSQL JDBC Driver SQL Injection in ResultSet.refreshRow() with malicious column names | HIGH | FALSE | CVE-2022-31197 |
Apache Xalan Java XSLT library integer truncation issue when processing malicious XSLT stylesheets | HIGH | FALSE | CVE-2022-34169 |
Denial of Service due to parser crash | HIGH | FALSE | CVE-2022-40153 |
Uncontrolled Resource Consumption in Jackson-databind | HIGH | FALSE | CVE-2022-42003 |
Uncontrolled Resource Consumption in FasterXML jackson-databind | HIGH | FALSE | CVE-2022-42004 |
json stack overflow vulnerability | HIGH | FALSE | CVE-2022-45688 |
json-smart Uncontrolled Recursion vulnerabilty | HIGH | FALSE | CVE-2023-1370 |
Spring Framework vulnerable to denial of service | HIGH | FALSE | CVE-2023-20863 |
Spring Boot Welcome Page Denial of Service | HIGH | FALSE | CVE-2023-20883 |
Uncontrolled Resource Consumption in XNIO | MEDIUM | FALSE | CVE-2020-14340 |
Improper privilege management in elasticsearch | MEDIUM | FALSE | CVE-2020-7019 |
Log entry injection in Spring Framework | MEDIUM | FALSE | CVE-2021-22060 |
Improper Output Neutralization for Logs in Spring Framework | MEDIUM | FALSE | CVE-2021-22096 |
Exposure of Sensitive Information to an Unauthorized Actor | MEDIUM | FALSE | CVE-2021-22134 |
API information disclosure flaw in Elasticsearch | MEDIUM | FALSE | CVE-2021-22135 |
Denial of Service in Elasticsearch | MEDIUM | FALSE | CVE-2021-22144 |
undertow Race Condition vulnerability | MEDIUM | FALSE | CVE-2021-3597 |
Allocation of Resources Without Limits or Throttling in Spring Framework | MEDIUM | FALSE | CVE-2022-22950 |
Allocation of Resources Without Limits or Throttling in Spring Framework | MEDIUM | FALSE | CVE-2022-22971 |
jsoup may not sanitize code injection XSS attempts if SafeList.preserveRelativeLinks is enabled | MEDIUM | FALSE | CVE-2022-36033 |
snakeYAML before 1.31 vulnerable to Denial of Service due to Out-of-bounds Write | MEDIUM | FALSE | CVE-2022-38749 |
snakeYAML before 1.31 vulnerable to Denial of Service due to Out-of-bounds Write | MEDIUM | FALSE | CVE-2022-38750 |
snakeYAML before 1.31 vulnerable to Denial of Service due to Out-of-bounds Write | MEDIUM | FALSE | CVE-2022-38751 |
snakeYAML before 1.32 vulnerable to Denial of Service due to Out-of-bounds Write | MEDIUM | FALSE | CVE-2022-38752 |
Denial of Service due to parser crash | MEDIUM | FALSE | CVE-2022-40152 |
Snakeyaml vulnerable to Stack overflow leading to denial of service | MEDIUM | FALSE | CVE-2022-41854 |
TemporaryFolder on unix-like systems does not limit access to created files | MEDIUM | FALSE | CVE-2022-41946 |
Spring Framework vulnerable to denial of service via specially crafted SpEL expression | MEDIUM | FALSE | CVE-2023-20861 |
Guava vulnerable to insecure use of temporary directory | MEDIUM | FALSE | CVE-2023-2976 |
pgjdbc Arbitrary File Write Vulnerability | MEDIUM | FALSE | GHSA-673j-qm5f-xpv8 |
Privilege Context Switching Error in Elasticsearch | LOW | FALSE | CVE-2020-7020 |
Information Disclosure in Guava | LOW | FALSE | CVE-2020-8908 |
Path traversal in org.postgresql:postgresql | LOW | FALSE | CVE-2022-26520 |
Denial of Service via stack overflow | LOW | FALSE | CVE-2022-40154 |
Denial of Service via stack overflow | LOW | FALSE | CVE-2022-40155 |
Denial of Service due to parser crash | LOW | FALSE | CVE-2022-40156 |
CRITICAL Vulnerability
μ CRITICAL λ 벨μ 보μ μ·¨μ½μ μ€μμ CVE-2019-10202λ₯Ό μ μΈνκ³ λ μ·¨μ½μ λμμ΄ λλ μμ€ν νκ²½μ μλκΈ° λλ¬Έμ κ΅³μ΄ μ ν리μΌμ΄μ μμ μ¬μ©μ€μΈ λΌμ΄λΈλ¬λ¦¬ μμ‘΄μ± λ²μ μ λ³κ²½ν νμλ μλ€κ³ μκ°λλ€. CVE-2019-10202μ λν΄μλ μ ν리μΌμ΄μ μμ org.codehaus.jackson:jackson-mapper-asl λΌμ΄λΈλ¬λ¦¬λ₯Ό μ¬μ©ν νμκ° μμμλ μΌλΆ μ½λκ° λ κ±°μ νλ‘μ νΈλ‘λΆν° 볡μ¬λμκΈ° λλ¬Έμ jackson-databind λΌμ΄λΈλ¬λ¦¬μ ν¬ν¨λ ISO8601Utilsλ₯Ό μ¬μ©νλλ‘ μ½λλ₯Ό λ³κ²½νκ³ λΆνμν jackson-mapper-asl μμ‘΄μ±μ μ κ±°νμλ€.
ext {
set('quartz.version', '2.3.2') // CVE-2019-13990
set('thymeleaf.version', '3.0.13.RELEASE') // CVE-2021-43466
set('spring-framework.version', '5.2.24.RELEASE') // CVE-2022-22965
set('undertow.version', '2.2.24.Final') // CVE-2022-4492]
}
λλ¨Έμ§ CRITICAL λ λ²¨μ΄ μλ μ·¨μ½μ μ κ΅³μ΄ μ‘°μΉν νμμ±μ΄ λμ§λ μμ보μ΄λ μ΅λν μ·¨μ½μ μ μ κ±°νκ³ μ λΆμ ν Github Advisory Databaseλ₯Ό ν΅ν΄ μ·¨μ½μ μ΄ μ‘°μΉλ λ²μ μΌλ‘ λ³κ²½νμλ€.
Vulnerability
μ·¨μ½μ μ‘°μΉ μ΄νμ 체ν¬λμ΄ λ¨μμλ μ·¨μ½μ μ μλμ κ°λ€.
name | severity | exploitable | issueId |
---|---|---|---|
Pivotal Spring Framework contains unsafe Java deserialization methods | CRITICAL | FALSE | CVE-2016-1000027 |
Spring Boot Security Bypass with Wildcard Pattern Matching on Cloud Foundry | CRITICAL | FALSE | CVE-2023-20873 |
SnakeYaml Constructor Deserialization Remote Code Execution | HIGH | FALSE | CVE-2022-1471 |
Spring Boot Welcome Page Denial of Service | HIGH | FALSE | CVE-2023-20883 |
CRITICAL λ 벨μ CVE-2016-1000027μ CVE-2023-20873 λ μ·¨μ½μ λ΄μ©μ μ΄ν΄λ³΄λ©΄ μ·¨μ½μ μ΄ λ°μν μ μλ μμ€ν νκ²½μ΄ μλκΈ° λλ¬Έμ κ΅³μ΄ μ‘°μΉν νμκ° μλ€. λꡬλ μ·¨μ½μ μ 보λ₯Ό μ κ±°νκΈ° μν΄μλ μλΉν λμ μ€νλ§ λΆνΈ 3+μΌλ‘ λ³κ²½ν΄μΌνκΈ° λλ¬Έμ κ΅³μ΄ μλνμ§ μμΌλ €κ³ νλ€.
CVE-2022-1471μ λν΄μλ μ€νλ§ λΆνΈ 2.5.15 μμ Improve compatibility with SnakeYAML 2.0 μ²λ¦¬κ° λμκΈ° λλ¬Έμ Snakeyaml λΌμ΄λΈλ¬λ¦¬μ λ²μ λ§ 2.0+λ‘ λ³κ²½νλ©΄ λμ§λ§ μ€νλ§ λΆνΈ 2.4+λ‘ λ³κ²½νλ κ²λ μκ°λ³΄λ€ λ§μ μ€μ λ€μ΄ λ³κ²½λμ΄μ μ½μ§ μλ€. λ§μ½, μ€νλ§ λΆνΈ 2.5.15λ‘ λ³κ²½νλ€λ©΄ CVE-2023-20883λ ν¨κ» μ‘°μΉν μ μλ€.
μ΄λ κ² μ·¨μ½μ μ κ±° μ‘°μΉλ μννμΌλ μ€μ λ‘ λ°μνλ κ²μ μ‘°μ¬ν΄μΌνλ€. λΌμ΄λΈλ¬λ¦¬ λ²μ λ³κ²½μΌλ‘ μΈν μμ€ν μν₯λλ₯Ό μ λλ‘ μ²΄ν¬νλ€λ κ²μ 보μ₯ν μ μκΈ° λλ¬Έμ νλ²μ μμ νλ κ²μ μ§μν΄μΌν μ μλ€. μμ, jackson-databind λΌμ΄λΈλ¬λ¦¬λ₯Ό 2.11.4 μμ μμ λ²μ μΌλ‘ μ κ·Έλ μ΄λνλ κ³Όμ μμ μλμ κ°μ μ§λ ¬ν μ΄μκ° λ°μνμλ€.
Caused by: com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Java 8 date/time type `java.time.Instant` not supported by default: add Module "com.fasterxml.jackson.datatype:jackson-datatype-jsr310" to enable handling (through reference chain: java.util.Collections$UnmodifiableMap["build"]->java.util.LinkedHashMap["time"])
μ΄μ κ°μ μ΄μλ₯Ό ν΄κ²°νκΈ° μν΄μ ObjectMapperλ₯Ό λ§λ€μ΄μ μ¬μ©νλ λͺ¨λ μ½λμ JavaTimeModuleμ μλμΌλ‘ λ±λ‘νλλ‘ λ³κ²½ν΄μΌνλ€.
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.registerModule(new JavaTimeModule());
μΈν 리μ μ΄λ₯Ό ν΅ν΄ κ²μν΄λ³΄λ μκ°λ³΄λ€ 건λλ €μΌνλ μ½λκ° λ§μμ jackson-databind λΌμ΄λΈλ¬λ¦¬λ₯Ό μμ λ²μ μΌλ‘ λ³κ²½νμ§ μκ³ 2.11.4λ₯Ό μ μ§νκ³ μ νλ€.
OWASP Dependency-Check
OWASP Dependency-CheckλΌλ SCA λꡬλ₯Ό μ¬μ©ν΄μ CPEμ CVEλ₯Ό κ²μΆν μ μλ€. μλμ κ°μ΄ dependencycheck κ·Έλλ€ νλ¬κ·ΈμΈμ λ±λ‘νκ³ λμ dependencyCheckAnalyze νμ€ν¬λ₯Ό μννλ©΄ build/reports/dependency-check-report.html
νμΌμ΄ μμ±λμ΄ μ·¨μ½μ μ 보λ₯Ό νμΈν μ μλ€.
build.gradleplugins { id 'org.owasp.dependencycheck' version '8.4.0' } dependencyCheck { // build/reports/dependency-check-report.html analyzers { nodeEnabled = false nodeAudit { enabled = false yarnEnabled = false pnpmEnabled = false } } }
μ ν¨μ€ OWASP Dependency-Check νλ¬κ·ΈμΈλ μλλ° OWASP Dependency-Checkλ‘ μ²΄ν¬νλ κ²½μ° μκ°λ³΄λ€ λ§μ μ·¨μ½μ μ΄ νμΈλμ΄μ μ΅μ λΌμ΄λΈλ¬λ¦¬λ₯Ό μ¬μ©νλ νλ‘μ νΈκ° μλλΌλ©΄ μ’μ보μ΄μ§λ μλλ€. κ°μΈμ μΌλ‘ CVE κ²μΆμ μν΄μ μ¬μ©νμ§ μμ κ² κ°λ€.