+ "details": "### Impact\n\nMinder users may fetch content in the context of the Minder server, which may include URLs which the user would not normally have access to (for example, if the Minder server is behind a firewall or other network partition).\n\n### Patches\n\nhttps://github.com/mindersec/minder/commit/f770400923984649a287d7215410ef108e845af8\n\n### Workarounds\n\nUsers should avoid deploying Minder with access to sensitive resources. Unfortunately, this could include access to systems like OpenFGA or Keycloak, depending on the deployment configuration.\n\n### References\n\nSample ruletype:\n\n```yaml\nversion: v1\ntype: rule-type\nname: test-http-send\ndisplay_name: Test that we can call http.send\nshort_failure_message: Failed http.send\nseverity:\n value: medium\ncontext:\n provider: github\ndescription: |\n ...\nguidance: |\n ....\ndef:\n in_entity: repository\n rule_schema:\n type: object\n properties: {}\n ingest:\n type: git\n git: {}\n eval:\n type: rego\n violation_format: text\n rego:\n type: constraints\n def: |\n package minder\n\n import rego.v1\n\n violations contains {\"msg\": \"Check-execution\"}\n\n resp := http.send({\n \"method\": \"GET\",\n \"url\": \"http://openfga:8080/\",\n \"raise_error\": false,\n })\n\n violations contains {\"msg\": sprintf(\"Response: %s\", [resp.status])}\n\n details := sprintf(\"High score: %s\", [resp.body.summary])\n\n violations contains {\"msg\": sprintf(\"Response body: %s\", [resp.body]) } if {\n resp.status_code > 0\n }\n```\n\nExample policy:\n\n```yaml\nversion: v1\ntype: profile\nname: Test-HTTP-send\ndisplay_name: Test if we can do http.send\ncontext:\n provider: github\nalert: \"off\"\nremediate: \"off\"\nrepository:\n - type: test-http-send\n def: {}\n```\n\nEvaluation results:\n\n```sh\n$ minder profile status list -n test-http-send --json\n{\n \"profileStatus\": {\n \"profileId\": \"3b3e0918-4deb-49cc-b4c9-1d1d912cf784\",\n \"profileName\": \"Test-HTTP-send\",\n \"profileStatus\": \"failure\",\n \"lastUpdated\": \"2024-10-31T03:44:01.456359Z\"\n },\n \"ruleEvaluationStatus\": [\n {\n \"profileId\": \"3b3e0918-4deb-49cc-b4c9-1d1d912cf784\",\n \"ruleId\": \"c0ebac2c-cfe2-4a98-b0a6-d6971209653e\",\n \"ruleName\": \"test-http-send\",\n \"entity\": \"repository\",\n \"status\": \"failure\",\n \"lastUpdated\": \"2024-10-31T03:44:01.456359Z\",\n \"entityInfo\": {\n \"entity_id\": \"a7f7a4bc-4430-4e9a-86a9-ffa026db6343\",\n \"entity_type\": \"repository\",\n \"name\": \"a-random-sandbox/colorls\",\n \"provider\": \"github-app-a-random-sandbox\",\n \"repo_name\": \"colorls\",\n \"repo_owner\": \"a-random-sandbox\",\n \"repository_id\": \"a7f7a4bc-4430-4e9a-86a9-ffa026db6343\"\n },\n \"details\": \"Multiple issues:\\n* Check-execution\\n* Response body: {\\\"code\\\": \\\"undefined_endpoint\\\", \\\"message\\\": \\\"Not Found\\\"}\\n* Response: 404 Not Found\\n\",\n \"guidance\": \"....\\n\",\n \"remediationStatus\": \"skipped\",\n \"remediationLastUpdated\": \"2024-10-31T03:44:01.456359Z\",\n \"ruleTypeName\": \"test-http-send\",\n \"ruleDescriptionName\": \"Test that we can call http.send\",\n \"alert\": {\n \"status\": \"skipped\",\n \"lastUpdated\": \"2024-10-31T03:44:01.456359Z\"\n },\n \"ruleDisplayName\": \"Test that we can call http.send\",\n \"releasePhase\": \"RULE_TYPE_RELEASE_PHASE_ALPHA\"\n }\n ]\n}\n```",
0 commit comments