보안 취약점 검사 리포트

회차: 2026-08-08_182205 | 검사 시작: 2026-08-08 18:22:05 KST

1. 의존성 취약점 (SCA)

[frontend] ktcloud - 7건

MEDIUM: 5   LOW: 2  

[backend] ktcloud_admin - 148건

CRITICAL: 6   HIGH: 54   MEDIUM: 70   LOW: 18  
CVE심각도패키지버전수정버전
CVE-2025-52999HIGHcom.fasterxml.jackson.core:jackson-core2.14.22.15.0
GHSA-r7wm-3cxj-wff9HIGHcom.fasterxml.jackson.core:jackson-core2.14.22.18.8, 2.21.4
CVE-2026-54512HIGHcom.fasterxml.jackson.core:jackson-databind2.14.22.18.8, 3.1.4, 2.21.4
CVE-2026-54513HIGHcom.fasterxml.jackson.core:jackson-databind2.14.22.18.8, 2.21.4, 3.1.4
CVE-2023-22102HIGHcom.mysql:mysql-connector-j8.0.338.2.0
CVE-2023-52428HIGHcom.nimbusds:nimbus-jose-jwt9.24.49.37.2
CVE-2025-48976HIGHcommons-fileupload:commons-fileupload1.51.6.0
CVE-2026-40984HIGHio.micrometer:micrometer-core1.12.51.16.6, 1.15.12
CVE-2026-42583HIGHio.netty:netty-codec4.1.109.Final4.1.133.Final
CVE-2026-59901HIGHio.netty:netty-codec4.1.109.Final4.1.136.Final
CVE-2026-42579HIGHio.netty:netty-codec-dns4.1.109.Final4.2.13.Final, 4.1.133.Final
CVE-2026-33870HIGHio.netty:netty-codec-http4.1.109.Final4.1.132.Final, 4.2.10.Final
CVE-2026-42584HIGHio.netty:netty-codec-http4.1.109.Final4.2.13.Final, 4.1.133.Final
CVE-2026-42587HIGHio.netty:netty-codec-http4.1.109.Final4.2.13.Final, 4.1.133.Final
CVE-2026-55831HIGHio.netty:netty-codec-http4.1.109.Final4.2.16.Final, 4.1.136.Final
CVE-2026-55833HIGHio.netty:netty-codec-http4.1.109.Final4.2.16.Final, 4.1.136.Final
CVE-2026-56745HIGHio.netty:netty-codec-http4.1.109.Final4.2.16.Final, 4.1.136.Final
CVE-2025-55163HIGHio.netty:netty-codec-http24.1.109.Final4.2.4.Final, 4.1.124.Final
CVE-2026-33871HIGHio.netty:netty-codec-http24.1.109.Final4.1.132.Final, 4.2.11.Final
CVE-2026-42587HIGHio.netty:netty-codec-http24.1.109.Final4.2.13.Final, 4.1.133.Final
CVE-2026-56819HIGHio.netty:netty-codec-http24.1.109.Final4.2.16.Final, 4.1.136.Final
CVE-2025-24970HIGHio.netty:netty-handler4.1.109.Final4.1.118.Final
CVE-2026-44249HIGHio.netty:netty-handler4.1.109.Final4.2.15.Final, 4.1.135.Final
CVE-2026-45416HIGHio.netty:netty-handler4.1.109.Final4.2.15.Final, 4.1.135.Final
CVE-2026-50010HIGHio.netty:netty-handler4.1.109.Final4.2.15.Final, 4.1.135.Final
CVE-2026-45674HIGHio.netty:netty-resolver-dns4.1.109.Final4.2.15.Final, 4.1.135.Final
CVE-2026-47691HIGHio.netty:netty-resolver-dns4.1.109.Final4.2.15.Final, 4.1.135.Final
CVE-2024-57699HIGHnet.minidev:json-smart2.5.12.5.2
CVE-2025-24813CRITICALorg.apache.tomcat.embed:tomcat-embed-core10.1.2011.0.3, 10.1.35, 9.0.99
CVE-2026-41293CRITICALorg.apache.tomcat.embed:tomcat-embed-core10.1.209.0.118, 10.1.55, 11.0.22

... 외 30건

2. 정적 분석 (SAST)

[frontend] semgrep-registry - 4건

심각도파일라인메시지
WARNINGcbc-padding-oraclesrc/main/java/com/callgate/sample/common/utils/AESUtil.java39Using CBC with PKCS5Padding is susceptible to padding oracle attacks. A malicious actor could discer
WARNINGcbc-padding-oraclesrc/main/java/com/callgate/sample/common/utils/AESUtil.java58Using CBC with PKCS5Padding is susceptible to padding oracle attacks. A malicious actor could discer
WARNINGuse-of-aes-ecbsrc/main/java/com/callgate/sample/common/utils/EncryptUtil.java27Use of AES with ECB mode detected. ECB doesn't provide message confidentiality and is not semantica
WARNINGuse-of-aes-ecbsrc/main/java/com/callgate/sample/common/utils/EncryptUtil.java51Use of AES with ECB mode detected. ECB doesn't provide message confidentiality and is not semantica

[backend] semgrep-custom - 43건

심각도파일라인메시지
ERRORktcloud-mybatis-dollar-substitutionsrc/main/resources/mybatis/admin/AuthMapper.xml95MyBatis XML에서 ${} 직접 치환을 사용합니다. 사용자 입력이 이 자리에 도달하면 SQL Injection이 발생합니다. 값 바인딩이면 #{}로 교체하고, ORDER BY
ERRORktcloud-mybatis-dollar-substitutionsrc/main/resources/mybatis/admin/AuthMapper.xml148MyBatis XML에서 ${} 직접 치환을 사용합니다. 사용자 입력이 이 자리에 도달하면 SQL Injection이 발생합니다. 값 바인딩이면 #{}로 교체하고, ORDER BY
ERRORktcloud-mybatis-dollar-substitutionsrc/main/resources/mybatis/admin/AuthMapper.xml216MyBatis XML에서 ${} 직접 치환을 사용합니다. 사용자 입력이 이 자리에 도달하면 SQL Injection이 발생합니다. 값 바인딩이면 #{}로 교체하고, ORDER BY
ERRORktcloud-mybatis-dollar-substitutionsrc/main/resources/mybatis/admin/CodeMapper.xml176MyBatis XML에서 ${} 직접 치환을 사용합니다. 사용자 입력이 이 자리에 도달하면 SQL Injection이 발생합니다. 값 바인딩이면 #{}로 교체하고, ORDER BY
ERRORktcloud-mybatis-dollar-substitutionsrc/main/resources/mybatis/admin/CodeMapper.xml185MyBatis XML에서 ${} 직접 치환을 사용합니다. 사용자 입력이 이 자리에 도달하면 SQL Injection이 발생합니다. 값 바인딩이면 #{}로 교체하고, ORDER BY
ERRORktcloud-mybatis-dollar-substitutionsrc/main/resources/mybatis/admin/CodeMapper.xml195MyBatis XML에서 ${} 직접 치환을 사용합니다. 사용자 입력이 이 자리에 도달하면 SQL Injection이 발생합니다. 값 바인딩이면 #{}로 교체하고, ORDER BY
ERRORktcloud-mybatis-dollar-substitutionsrc/main/resources/mybatis/admin/CommonMapper.xml22MyBatis XML에서 ${} 직접 치환을 사용합니다. 사용자 입력이 이 자리에 도달하면 SQL Injection이 발생합니다. 값 바인딩이면 #{}로 교체하고, ORDER BY
ERRORktcloud-mybatis-dollar-substitutionsrc/main/resources/mybatis/admin/CommonMapper.xml22MyBatis XML에서 ${} 직접 치환을 사용합니다. 사용자 입력이 이 자리에 도달하면 SQL Injection이 발생합니다. 값 바인딩이면 #{}로 교체하고, ORDER BY
ERRORktcloud-mybatis-dollar-substitutionsrc/main/resources/mybatis/admin/CommonMapper.xml24MyBatis XML에서 ${} 직접 치환을 사용합니다. 사용자 입력이 이 자리에 도달하면 SQL Injection이 발생합니다. 값 바인딩이면 #{}로 교체하고, ORDER BY
ERRORktcloud-mybatis-dollar-substitutionsrc/main/resources/mybatis/admin/CommonMapper.xml30MyBatis XML에서 ${} 직접 치환을 사용합니다. 사용자 입력이 이 자리에 도달하면 SQL Injection이 발생합니다. 값 바인딩이면 #{}로 교체하고, ORDER BY
ERRORktcloud-mybatis-dollar-substitutionsrc/main/resources/mybatis/admin/CommonMapper.xml30MyBatis XML에서 ${} 직접 치환을 사용합니다. 사용자 입력이 이 자리에 도달하면 SQL Injection이 발생합니다. 값 바인딩이면 #{}로 교체하고, ORDER BY
ERRORktcloud-mybatis-dollar-substitutionsrc/main/resources/mybatis/admin/CommonMapper.xml31MyBatis XML에서 ${} 직접 치환을 사용합니다. 사용자 입력이 이 자리에 도달하면 SQL Injection이 발생합니다. 값 바인딩이면 #{}로 교체하고, ORDER BY
ERRORktcloud-mybatis-dollar-substitutionsrc/main/resources/mybatis/admin/HistoryMapper.xml66MyBatis XML에서 ${} 직접 치환을 사용합니다. 사용자 입력이 이 자리에 도달하면 SQL Injection이 발생합니다. 값 바인딩이면 #{}로 교체하고, ORDER BY
ERRORktcloud-mybatis-dollar-substitutionsrc/main/resources/mybatis/admin/HistoryMapper.xml69MyBatis XML에서 ${} 직접 치환을 사용합니다. 사용자 입력이 이 자리에 도달하면 SQL Injection이 발생합니다. 값 바인딩이면 #{}로 교체하고, ORDER BY
ERRORktcloud-mybatis-dollar-substitutionsrc/main/resources/mybatis/admin/HistoryMapper.xml69MyBatis XML에서 ${} 직접 치환을 사용합니다. 사용자 입력이 이 자리에 도달하면 SQL Injection이 발생합니다. 값 바인딩이면 #{}로 교체하고, ORDER BY
ERRORktcloud-mybatis-dollar-substitutionsrc/main/resources/mybatis/admin/HistoryMapper.xml79MyBatis XML에서 ${} 직접 치환을 사용합니다. 사용자 입력이 이 자리에 도달하면 SQL Injection이 발생합니다. 값 바인딩이면 #{}로 교체하고, ORDER BY
ERRORktcloud-mybatis-dollar-substitutionsrc/main/resources/mybatis/admin/HistoryMapper.xml79MyBatis XML에서 ${} 직접 치환을 사용합니다. 사용자 입력이 이 자리에 도달하면 SQL Injection이 발생합니다. 값 바인딩이면 #{}로 교체하고, ORDER BY
ERRORktcloud-mybatis-dollar-substitutionsrc/main/resources/mybatis/admin/HistoryMapper.xml127MyBatis XML에서 ${} 직접 치환을 사용합니다. 사용자 입력이 이 자리에 도달하면 SQL Injection이 발생합니다. 값 바인딩이면 #{}로 교체하고, ORDER BY
ERRORktcloud-mybatis-dollar-substitutionsrc/main/resources/mybatis/admin/HistoryMapper.xml196MyBatis XML에서 ${} 직접 치환을 사용합니다. 사용자 입력이 이 자리에 도달하면 SQL Injection이 발생합니다. 값 바인딩이면 #{}로 교체하고, ORDER BY
ERRORktcloud-mybatis-dollar-substitutionsrc/main/resources/mybatis/admin/HistoryMapper.xml196MyBatis XML에서 ${} 직접 치환을 사용합니다. 사용자 입력이 이 자리에 도달하면 SQL Injection이 발생합니다. 값 바인딩이면 #{}로 교체하고, ORDER BY
ERRORktcloud-mybatis-dollar-substitutionsrc/main/resources/mybatis/admin/HistoryMapper.xml200MyBatis XML에서 ${} 직접 치환을 사용합니다. 사용자 입력이 이 자리에 도달하면 SQL Injection이 발생합니다. 값 바인딩이면 #{}로 교체하고, ORDER BY
ERRORktcloud-mybatis-dollar-substitutionsrc/main/resources/mybatis/admin/HistoryMapper.xml251MyBatis XML에서 ${} 직접 치환을 사용합니다. 사용자 입력이 이 자리에 도달하면 SQL Injection이 발생합니다. 값 바인딩이면 #{}로 교체하고, ORDER BY
ERRORktcloud-mybatis-dollar-substitutionsrc/main/resources/mybatis/admin/HistoryMapper.xml251MyBatis XML에서 ${} 직접 치환을 사용합니다. 사용자 입력이 이 자리에 도달하면 SQL Injection이 발생합니다. 값 바인딩이면 #{}로 교체하고, ORDER BY
ERRORktcloud-mybatis-dollar-substitutionsrc/main/resources/mybatis/admin/HistoryMapper.xml253MyBatis XML에서 ${} 직접 치환을 사용합니다. 사용자 입력이 이 자리에 도달하면 SQL Injection이 발생합니다. 값 바인딩이면 #{}로 교체하고, ORDER BY
ERRORktcloud-mybatis-dollar-substitutionsrc/main/resources/mybatis/admin/UserUsageStatisticsMapper.xml67MyBatis XML에서 ${} 직접 치환을 사용합니다. 사용자 입력이 이 자리에 도달하면 SQL Injection이 발생합니다. 값 바인딩이면 #{}로 교체하고, ORDER BY
ERRORktcloud-mybatis-dollar-substitutionsrc/main/resources/mybatis/admin/UserUsageStatisticsMapper.xml121MyBatis XML에서 ${} 직접 치환을 사용합니다. 사용자 입력이 이 자리에 도달하면 SQL Injection이 발생합니다. 값 바인딩이면 #{}로 교체하고, ORDER BY
ERRORktcloud-mybatis-dollar-substitutionsrc/main/resources/mybatis/admin/UserUsageStatisticsMapper.xml170MyBatis XML에서 ${} 직접 치환을 사용합니다. 사용자 입력이 이 자리에 도달하면 SQL Injection이 발생합니다. 값 바인딩이면 #{}로 교체하고, ORDER BY
ERRORktcloud-mybatis-dollar-substitutionsrc/main/resources/mybatis/admin/UserUsageStatisticsMapper.xml224MyBatis XML에서 ${} 직접 치환을 사용합니다. 사용자 입력이 이 자리에 도달하면 SQL Injection이 발생합니다. 값 바인딩이면 #{}로 교체하고, ORDER BY
ERRORktcloud-mybatis-dollar-substitutionsrc/main/resources/mybatis/admin/UserUsageStatisticsMapper.xml319MyBatis XML에서 ${} 직접 치환을 사용합니다. 사용자 입력이 이 자리에 도달하면 SQL Injection이 발생합니다. 값 바인딩이면 #{}로 교체하고, ORDER BY
ERRORktcloud-mybatis-dollar-substitutionsrc/main/resources/mybatis/admin/UserUsageStatisticsMapper.xml319MyBatis XML에서 ${} 직접 치환을 사용합니다. 사용자 입력이 이 자리에 도달하면 SQL Injection이 발생합니다. 값 바인딩이면 #{}로 교체하고, ORDER BY
ERRORktcloud-mybatis-dollar-substitutionsrc/main/resources/mybatis/admin/UserUsageStatisticsMapper.xml321MyBatis XML에서 ${} 직접 치환을 사용합니다. 사용자 입력이 이 자리에 도달하면 SQL Injection이 발생합니다. 값 바인딩이면 #{}로 교체하고, ORDER BY
ERRORktcloud-mybatis-dollar-substitutionsrc/main/resources/mybatis/batch/Bs0001BatchMapper.xml10MyBatis XML에서 ${} 직접 치환을 사용합니다. 사용자 입력이 이 자리에 도달하면 SQL Injection이 발생합니다. 값 바인딩이면 #{}로 교체하고, ORDER BY
ERRORktcloud-mybatis-dollar-substitutionsrc/main/resources/mybatis/batch/Bs0002BatchMapper.xml20MyBatis XML에서 ${} 직접 치환을 사용합니다. 사용자 입력이 이 자리에 도달하면 SQL Injection이 발생합니다. 값 바인딩이면 #{}로 교체하고, ORDER BY
ERRORktcloud-mybatis-dollar-substitutionsrc/main/resources/mybatis/batch/Bs0002BatchMapper.xml22MyBatis XML에서 ${} 직접 치환을 사용합니다. 사용자 입력이 이 자리에 도달하면 SQL Injection이 발생합니다. 값 바인딩이면 #{}로 교체하고, ORDER BY
ERRORktcloud-mybatis-dollar-substitutionsrc/main/resources/mybatis/batch/Bs0002BatchMapper.xml32MyBatis XML에서 ${} 직접 치환을 사용합니다. 사용자 입력이 이 자리에 도달하면 SQL Injection이 발생합니다. 값 바인딩이면 #{}로 교체하고, ORDER BY
ERRORktcloud-mybatis-dollar-substitutionsrc/main/resources/mybatis/batch/Bs0002BatchMapper.xml32MyBatis XML에서 ${} 직접 치환을 사용합니다. 사용자 입력이 이 자리에 도달하면 SQL Injection이 발생합니다. 값 바인딩이면 #{}로 교체하고, ORDER BY
ERRORktcloud-mybatis-dollar-substitutionsrc/main/resources/mybatis/batch/Bs0002BatchMapper.xml33MyBatis XML에서 ${} 직접 치환을 사용합니다. 사용자 입력이 이 자리에 도달하면 SQL Injection이 발생합니다. 값 바인딩이면 #{}로 교체하고, ORDER BY
ERRORktcloud-mybatis-dollar-substitutionsrc/main/resources/mybatis/batch/Bs0003BatchMapper.xml13MyBatis XML에서 ${} 직접 치환을 사용합니다. 사용자 입력이 이 자리에 도달하면 SQL Injection이 발생합니다. 값 바인딩이면 #{}로 교체하고, ORDER BY
ERRORktcloud-mybatis-dollar-substitutionsrc/main/resources/mybatis/batch/Bs0003BatchMapper.xml20MyBatis XML에서 ${} 직접 치환을 사용합니다. 사용자 입력이 이 자리에 도달하면 SQL Injection이 발생합니다. 값 바인딩이면 #{}로 교체하고, ORDER BY
ERRORktcloud-mybatis-dollar-substitutionsrc/main/resources/mybatis/batch/Bs0003BatchMapper.xml20MyBatis XML에서 ${} 직접 치환을 사용합니다. 사용자 입력이 이 자리에 도달하면 SQL Injection이 발생합니다. 값 바인딩이면 #{}로 교체하고, ORDER BY
ERRORktcloud-mybatis-dollar-substitutionsrc/main/resources/mybatis/batch/Bs0003BatchMapper.xml20MyBatis XML에서 ${} 직접 치환을 사용합니다. 사용자 입력이 이 자리에 도달하면 SQL Injection이 발생합니다. 값 바인딩이면 #{}로 교체하고, ORDER BY
ERRORktcloud-mybatis-dollar-substitutionsrc/main/resources/mybatis/batch/PartitionBatchMapper.xml42MyBatis XML에서 ${} 직접 치환을 사용합니다. 사용자 입력이 이 자리에 도달하면 SQL Injection이 발생합니다. 값 바인딩이면 #{}로 교체하고, ORDER BY
WARNINGktcloud-thymeleaf-unescaped-outputsrc/main/resources/templates/pages/error/sverror.html66Thymeleaf th:utext 는 HTML 이스케이프 없이 출력하므로, 사용자 입력이 도달하면 저장형/반사형 XSS가 발생합니다. th:text 사용을 검토하고, HTML 출력

[backend] semgrep-registry - 9건

심각도파일라인메시지
WARNINGtainted-session-from-http-requestsrc/main/java/com/callgate/admin/login/LoginController.java56Detected input from a HTTPServletRequest going into a session command, like `setAttribute`. User inp
ERRORdetected-bcrypt-hashsrc/main/resources/sqlInfo/dump-builder-20250324.sql812bcrypt hash detected
ERRORdetected-bcrypt-hashsrc/main/resources/sqlInfo/dump-builder-20250324.sql812bcrypt hash detected
ERRORdetected-bcrypt-hashsrc/main/resources/sqlInfo/dump-builder-20250324.sql812bcrypt hash detected
ERRORdetected-bcrypt-hashsrc/main/resources/sqlInfo/dump-builder-20250324.sql812bcrypt hash detected
ERRORdetected-bcrypt-hashsrc/main/resources/sqlInfo/dump-builder-20250324.sql812bcrypt hash detected
ERRORdetected-bcrypt-hashsrc/main/resources/sqlInfo/dump-builder-20250324.sql812bcrypt hash detected
ERRORdetected-bcrypt-hashsrc/main/resources/sqlInfo/dump-builder-20250324.sql812bcrypt hash detected
ERRORdetected-bcrypt-hashsrc/main/resources/sqlInfo/dump-builder-20250324.sql812bcrypt hash detected

3. 동적 스캔 (DAST)

[frontend - Baseline]

경고 10건

위험도경고명건수CWE
MediumCSP: script-src unsafe-inline2693
MediumCSP: style-src unsafe-inline2693
MediumCross-Domain Misconfiguration5264
LowCookie No HttpOnly Flag21004
LowCookie without SameSite Attribute21275
LowCross-Origin-Embedder-Policy Header Missing or Invalid2693
LowServer Leaks Version Information via "Server" HTTP Response Header Field5497
InformationalModern Web Application2-1
InformationalNon-Storable Content5524
InformationalSession Management Response Identified3-1