Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 37 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
version: 2
updates:
# Maintain GitHub Actions dependencies
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
open-pull-requests-limit: 10
commit-message:
prefix: "ci(deps)"

# Maintain Python dependencies for root package
- package-ecosystem: "pip"
directory: "/"
schedule:
interval: "weekly"
open-pull-requests-limit: 10
commit-message:
prefix: "fix(deps)"

# Maintain npm dependencies for Mastra adapter
- package-ecosystem: "npm"
directory: "/adapters/mastra"
schedule:
interval: "weekly"
open-pull-requests-limit: 5
commit-message:
prefix: "fix(deps)"

# Maintain npm dependencies for Vercel AI adapter
- package-ecosystem: "npm"
directory: "/adapters/vercel-ai"
schedule:
interval: "weekly"
open-pull-requests-limit: 5
commit-message:
prefix: "fix(deps)"
44 changes: 44 additions & 0 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
name: "CodeQL Analysis"

on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
schedule:
- cron: "0 6 * * 1"

permissions:
contents: read
actions: read
security-events: write

jobs:
analyze:
name: Analyze (${{ matrix.language }})
runs-on: ubuntu-latest
timeout-minutes: 360

strategy:
fail-fast: false
matrix:
include:
- language: python
build-mode: none
- language: javascript-typescript
build-mode: none

steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Initialize CodeQL
uses: github/codeql-action/init@v3
with:
languages: ${{ matrix.language }}
build-mode: ${{ matrix.build-mode }}

- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3
with:
category: "/language:${{ matrix.language }}"
34 changes: 34 additions & 0 deletions .github/workflows/dependency-scan.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
name: Dependency Security Audit

on:
push:
branches: [ "**" ]
pull_request:
schedule:
- cron: "0 4 * * 1"

permissions:
contents: read

jobs:
audit:
name: Scan Python Dependencies
runs-on: ubuntu-latest

steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.12"

- name: Install pip-audit and dependencies
run: |
python -m pip install --upgrade pip
pip install pip-audit .

- name: Run pip-audit vulnerability scan
run: |
pip-audit
46 changes: 46 additions & 0 deletions .github/workflows/scorecard.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
name: OpenSSF Scorecard

on:
branch_protection_rule:
schedule:
- cron: "30 1 * * 6"
push:
branches: [ "main" ]
workflow_dispatch:

permissions: read-all

jobs:
analysis:
name: Scorecard analysis
runs-on: ubuntu-latest
permissions:
security-events: write
id-token: write
contents: read
actions: read

steps:
- name: "Checkout code"
uses: actions/checkout@v4
with:
persist-credentials: false

- name: "Run analysis"
uses: ossf/scorecard-action@v2.4.0
with:
results_file: results.sarif
results_format: sarif
publish_results: true

- name: "Upload artifact"
uses: actions/upload-artifact@v4
with:
name: SARIF file
path: results.sarif
retention-days: 5

- name: "Upload to code-scanning"
uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: results.sarif
66 changes: 66 additions & 0 deletions SECURITY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
# Security Policy

Prismor is a security utility for AI coding agents. We treat vulnerabilities in this repository and our runtime components with the highest priority.

---

## Supported Versions

Only the latest active minor release line receives security updates and vulnerability patches.

| Version | Supported | Notes |
| ------- | --------- | ----------------------------------------- |
| 1.x | Yes | Actively supported with security updates. |
| < 1.0 | No | Legacy / pre-release — no longer patched. |

We recommend users and downstream integrators always update to the latest release of `prismor` from PyPI or GitHub.

---

## Reporting a Vulnerability

If you discover a security vulnerability in Prismor, please **do not open a public GitHub issue or discuss it publicly**. Instead, report it through one of the private channels below:

### 1. GitHub Private Vulnerability Reporting (Preferred)
Submit a report privately via GitHub:
**[Report a vulnerability](https://github.com/PrismorSec/prismor/security/advisories/new)**

### 2. Email
Send an encrypted or private email to:
**security@prismor.dev**

Please include:
- A clear description of the vulnerability and its potential impact.
- Step-by-step reproduction instructions or a minimal Proof of Concept (PoC).
- The affected version(s), platform/OS, and agent environment (e.g., Claude Code, Cursor, Gemini CLI).
- Any proposed remediation or patch, if available.

---

## Our Response Process & SLA

When you submit a vulnerability report:

1. **Acknowledgment**: We will acknowledge receipt of your report within **48 hours**.
2. **Triage & Assessment**: We will assess the severity and impact within **5 business days** and keep you updated on progress.
3. **Fix & Verification**: A patch will be developed and verified in a private security advisory branch.
4. **Coordinated Disclosure**: We will coordinate with you on the release date and credit your contribution in the security advisory and release notes.

We kindly ask that you maintain responsible disclosure and give us reasonable time to release a patch before making any information public.

---

## Scope & Out-of-Scope

### In Scope
- Vulnerabilities that allow bypassing runtime policy enforcement without authorization.
- Secret leaks or failures in the secret cloaking prevention layer (`@@SECRET:...@@`).
- Flaws in memory guard integrity or prompt-injection defense mechanisms.
- Remote Code Execution (RCE) or Privilege Escalation vulnerabilities in runtime hooks and adapters.

### Out of Scope
- Attacks requiring physical access to an unlocked, root-compromised machine.
- Social engineering attacks against project maintainers.
- Denial of Service attacks against public demonstration endpoints without functional exploitability.

Thank you for helping keep Prismor and the AI agent ecosystem safe!
Loading