


















@@ -18,6 +18,16 @@ type PublishablePluginPackage = {
1818packageName: string;
1919};
202021+const REVIEWED_PUBLISHABLE_CRITICAL_FINDINGS = new Set([
22+"@openclaw/acpx:dangerous-exec:src/codex-auth-bridge.ts",
23+"@openclaw/acpx:dangerous-exec:src/runtime-internals/mcp-proxy.mjs",
24+"@openclaw/codex:dangerous-exec:src/app-server/transport-stdio.ts",
25+"@openclaw/google-meet:dangerous-exec:src/node-host.ts",
26+"@openclaw/google-meet:dangerous-exec:src/realtime.ts",
27+"@openclaw/voice-call:dangerous-exec:src/tunnel.ts",
28+"@openclaw/voice-call:dangerous-exec:src/webhook/tailscale.ts",
29+]);
30+2131const tempDirs: string[] = [];
22322333afterEach(() => {
@@ -115,8 +125,9 @@ function collectPublishablePluginPackages(): PublishablePluginPackage[] {
115125}
116126117127describe("publishable plugin npm package install security scan", () => {
118-it("keeps npm-published plugin files clear of env-harvesting hits", async () => {
119-const failures: string[] = [];
128+it("keeps npm-published plugin files clear of unexpected critical hits", async () => {
129+const unexpectedCriticalFindings: string[] = [];
130+const reviewedCriticalFindings = new Set<string>();
120131121132for (const plugin of collectPublishablePluginPackages()) {
122133const packedFiles = collectNpmPackedFiles(plugin.packageDir, plugin.packageName);
@@ -127,20 +138,22 @@ describe("publishable plugin npm package install security scan", () => {
127138});
128139129140for (const finding of summary.findings) {
130-if (finding.ruleId !== "env-harvesting" || finding.severity !== "critical") {
141+if (finding.severity !== "critical") {
142+continue;
143+}
144+const packedPath = relative(stageDir, finding.file).split(sep).join("/");
145+const key = `${plugin.packageName}:${finding.ruleId}:${packedPath}`;
146+if (REVIEWED_PUBLISHABLE_CRITICAL_FINDINGS.has(key)) {
147+reviewedCriticalFindings.add(key);
131148continue;
132149}
133-failures.push(
134-[
135-plugin.packageName,
136-relative(stageDir, finding.file).split(sep).join("/"),
137-`${finding.line}`,
138-finding.evidence,
139-].join(":"),
140-);
150+unexpectedCriticalFindings.push([key, `${finding.line}`, finding.evidence].join(":"));
141151}
142152}
143153144-expect(failures).toEqual([]);
154+expect(unexpectedCriticalFindings).toEqual([]);
155+expect([...reviewedCriticalFindings].toSorted()).toEqual(
156+[...REVIEWED_PUBLISHABLE_CRITICAL_FINDINGS].toSorted(),
157+);
145158});
146159});
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。