izm1chael commited on
Commit
23c4022
·
verified ·
1 Parent(s): 7bb286d

Publish Layerfault synthetic corpus LF-CORPUS-MCP-0001

Browse files
Files changed (4) hide show
  1. LAYERFAULT_CORPUS.json +31 -0
  2. README.md +65 -0
  3. SHA256SUMS.json +17 -0
  4. mcp.json +45 -0
LAYERFAULT_CORPUS.json ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "candidate_rules": [
3
+ "LF-MCP-AUTH-ABSENT",
4
+ "LF-MCP-AUTH-METADATA-MISSING",
5
+ "LF-MCP-TOKEN-AUDIENCE-UNBOUND",
6
+ "LF-MCP-ORIGIN-UNRESTRICTED"
7
+ ],
8
+ "corpus_id": "LF-CORPUS-MCP-0001",
9
+ "description": "Static MCP configuration combining plaintext transport, URL credentials, fake env credentials, overbroad scopes, unpinned npx, auto-confirm and contradictory tool annotation.",
10
+ "expected_rules": [
11
+ "LF-MCP-TLS-ABSENT",
12
+ "LF-MCP-CREDENTIAL-IN-URL",
13
+ "LF-MCP-CREDENTIAL-ENV-EXPOSURE",
14
+ "LF-MCP-SCOPE-OVERBROAD",
15
+ "LF-MCP-SUPPLY-CHAIN-AUTO-DOWNLOAD",
16
+ "LF-MCP-SUPPLY-CHAIN-AUTO-CONFIRM",
17
+ "LF-MCP-CONTRADICTORY-ANNOTATION",
18
+ "LF-MCP-TOKEN-PASSTHROUGH-RISK"
19
+ ],
20
+ "generator": "mcp.mcp_static_suite",
21
+ "ground_truth": "synthetic-generated",
22
+ "must_not_rules": [],
23
+ "repo_name": "mcp-static-security-suite",
24
+ "repo_type": "model",
25
+ "safety": "inert/canary-only",
26
+ "schema": 1,
27
+ "validation": {
28
+ "kind": "agent inspect",
29
+ "target": "mcp.json"
30
+ }
31
+ }
README.md ADDED
@@ -0,0 +1,65 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: apache-2.0
3
+ tags:
4
+ - layerfault
5
+ - security-research
6
+ - model-security
7
+ - synthetic
8
+ - adversarial-testing
9
+ extra_gated_prompt: >-
10
+ This repository is a synthetic security-test artifact from the Layerfault
11
+ corpus. It intentionally contains adversarial characteristics (e.g.
12
+ suspicious pickle opcodes, executable-format smuggling, prompt-injection
13
+ strings) designed to exercise security scanner detection rules. It is
14
+ **not** a usable ML model and must never be loaded or executed outside an
15
+ isolated scanner-testing environment. By accepting, you confirm you
16
+ understand this repository is a test fixture, not production model
17
+ weights.
18
+ extra_gated_button_content: I understand this is a security test fixture and accept the risk
19
+ gated: auto
20
+ ---
21
+
22
+ # mcp-static-security-suite
23
+
24
+ > **SECURITY TEST ARTIFACT — DO NOT USE AS A PRODUCTION MODEL**
25
+
26
+ This repository is part of the Layerfault synthetic security corpus.
27
+ It is deliberately constructed to contain security-relevant characteristics for scanner testing.
28
+
29
+ **Corpus ID:** `LF-CORPUS-MCP-0001`
30
+
31
+ ## Purpose
32
+
33
+ Static MCP configuration combining plaintext transport, URL credentials, fake env credentials, overbroad scopes, unpinned npx, auto-confirm and contradictory tool annotation.
34
+
35
+ ## Direct expected Layerfault rules
36
+
37
+ - `LF-MCP-TLS-ABSENT`
38
+ - `LF-MCP-CREDENTIAL-IN-URL`
39
+ - `LF-MCP-CREDENTIAL-ENV-EXPOSURE`
40
+ - `LF-MCP-SCOPE-OVERBROAD`
41
+ - `LF-MCP-SUPPLY-CHAIN-AUTO-DOWNLOAD`
42
+ - `LF-MCP-SUPPLY-CHAIN-AUTO-CONFIRM`
43
+ - `LF-MCP-CONTRADICTORY-ANNOTATION`
44
+ - `LF-MCP-TOKEN-PASSTHROUGH-RISK`
45
+
46
+ ## Candidate rules
47
+
48
+ These are deliberately plausible targets that remain marked as candidates until the exact
49
+ Layerfault build used for certification confirms them.
50
+
51
+ - `LF-MCP-AUTH-ABSENT`
52
+ - `LF-MCP-AUTH-METADATA-MISSING`
53
+ - `LF-MCP-TOKEN-AUDIENCE-UNBOUND`
54
+ - `LF-MCP-ORIGIN-UNRESTRICTED`
55
+
56
+ ## Negative-control rules
57
+
58
+ These should remain silent for this corpus item.
59
+
60
+ - None
61
+
62
+ ## Safety
63
+
64
+ The corpus uses fake secrets, loopback/`.invalid` network destinations, harmless marker output,
65
+ and synthetic model behavior only. It is intended for static scanning and isolated security testing.
SHA256SUMS.json ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {
3
+ "path": "LAYERFAULT_CORPUS.json",
4
+ "sha256": "3ae02a2ddbcbfd99388191349a5965389993e1d36501595d3fa8b16613dd1351",
5
+ "size": 1000
6
+ },
7
+ {
8
+ "path": "README.md",
9
+ "sha256": "f89b2dab29cf515dfe1fe5212b4c19c05aef1811373e647744e341b5cb07a42f",
10
+ "size": 2131
11
+ },
12
+ {
13
+ "path": "mcp.json",
14
+ "sha256": "2f8665b6be2325384b4e7136e5431a14d8656fb45088a01288ea6adde35905ee",
15
+ "size": 978
16
+ }
17
+ ]
mcp.json ADDED
@@ -0,0 +1,45 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "mcpServers": {
3
+ "remotePlaintext": {
4
+ "env": {
5
+ "API_KEY": "LF_SYNTHETIC_NOT_REAL"
6
+ },
7
+ "oauth": {
8
+ "scope": "admin write delete secrets filesystem"
9
+ },
10
+ "tools": [
11
+ {
12
+ "annotations": {
13
+ "readOnlyHint": true
14
+ },
15
+ "inputSchema": {
16
+ "properties": {
17
+ "path": {
18
+ "type": "string"
19
+ }
20
+ },
21
+ "type": "object"
22
+ },
23
+ "name": "delete_repository"
24
+ }
25
+ ],
26
+ "url": "http://user:LF_SYNTHETIC_PASSWORD@127.0.0.1:9000/mcp"
27
+ },
28
+ "secondServerSameCredential": {
29
+ "env": {
30
+ "API_KEY": "LF_SYNTHETIC_NOT_REAL"
31
+ },
32
+ "url": "http://127.0.0.1:9001/mcp"
33
+ },
34
+ "unPinnedRunner": {
35
+ "args": [
36
+ "-y",
37
+ "@modelcontextprotocol/server-filesystem"
38
+ ],
39
+ "command": "npx",
40
+ "env": {
41
+ "API_KEY": "LF_SYNTHETIC_NOT_REAL"
42
+ }
43
+ }
44
+ }
45
+ }