目标达成 感谢每一位支持者 — 我们达成了 100% 目标!

目标: 1000 元 · 已筹: 1000

100.0%

CWE-111 对不安全JNI的直接使用 类漏洞列表 2

CWE-111 对不安全JNI的直接使用 类弱点 2 条 CVE 漏洞汇总,含 AI 中文分析。

CWE-111 指 Java 应用通过 JNI 调用原生代码时,因原生层缺乏 Java 的安全机制而引入的漏洞。攻击者常利用原生代码中的内存破坏或逻辑缺陷,绕过 Java 沙箱限制,执行任意代码或导致服务崩溃。开发者需严格审查所有 JNI 交互的原生代码,确保其具备同等的安全校验与内存保护,避免将不安全逻辑直接暴露给 Java 环境,从而消除潜在的攻击面。

MITRE CWE 官方描述
CWE:CWE-111 直接使用不安全的 JNI 英文:当 Java 应用程序使用 Java Native Interface (JNI) 调用用其他编程语言编写的代码时,即使这些弱点在 Java 中无法发生,它也会使应用程序暴露于该代码中的弱点。 程序员可能视为理所当然的许多安全特性不适用于 native code,因此必须仔细审查所有此类代码以发现潜在问题。用于实现 native code 的语言可能更容易受到 buffer overflows 和其他攻击的影响。Native code 不受运行时环境强制执行的安全特性的保护,例如 strong typing 和 array bounds checking。
常见影响 (1)
Access ControlBypass Protection Mechanism
缓解措施 (3)
ImplementationImplement error handling around the JNI call.
ImplementationDo not use JNI calls if you don't trust the native library.
ImplementationBe reluctant to use JNI calls. A Java API equivalent may exist.
代码示例 (1)
The following code defines a class named Echo. The class declares one native method (defined below), which uses C to echo commands entered on the console back to the user. The following C code defines the native method implemented in the Echo class:
class Echo { public native void runEcho(); static { System.loadLibrary("echo"); } public static void main(String[] args) { new Echo().runEcho(); } }
Bad · Java
#include <jni.h> #include "Echo.h"//the java class above compiled with javah #include <stdio.h> JNIEXPORT void JNICALL Java_Echo_runEcho(JNIEnv *env, jobject obj) { char buf[64]; gets(buf); printf(buf); }
Bad · C
CVE ID标题CVSS风险等级Published
CVE-2018-12549 Eclipse OpenJ9 输入验证错误漏洞 — Eclipse OpenJ9 9.8 -2019-02-11
CVE-2016-9160 SIMATIC WinCC和SIMATIC PCS 7 安全漏洞 — SIEMENS SIMATIC WinCC (All versions < SIMATIC WinCC V7.2) and SIEMENS SIMATIC PCS 7 (All versions < SIMATIC PCS 7 V8.0 SP1) 8.1 -2016-12-17

CWE-111(对不安全JNI的直接使用) 是常见的弱点类别,本平台收录该类弱点关联的 2 条 CVE 漏洞。