PMIS documentation

Security

PMIS holds client vulnerability data. This page summarises how it protects that data and what you need to do as an operator.

Reporting a vulnerability

Report vulnerabilities privately through GitHub: on the repository's Security tab, choose Report a vulnerability. Do not open a public issue. Include steps to reproduce, the affected version and the impact. See the security policy. Only the latest release is supported.

Built-in protections

Access control

Every request is checked on the server against the user's role and team. Users see only the projects, findings and reports they are entitled to. An Admin can allow or deny each feature per role under Settings > RBAC; Admins always keep every feature, and the Settings panel stays Admin only.

Passwords

Stored only as Argon2id hashes. Admins set a password policy, by default at least 14 characters with mixed character types. New and reset accounts must choose their own password at first sign-in.

Sessions

Session tokens are kept in HTTP-only, same-site cookies that scripts cannot read. Sessions expire after inactivity (15 minutes by default). Each user has one active session at a time. Signing out or changing a password ends the session.

Sign-in protection

Accounts are locked temporarily after repeated failed sign-ins, and request rates are limited.

Browser protections

Security headers, including a content security policy, block framing and restrict where content loads from. Changes requested from other websites are refused.

File handling

Uploads are size-limited and checked by content, not by name. Spreadsheets containing macros, formulas or embedded objects are rejected. Findings imported from a file are validated on the server, imported all or nothing, and kept in the one project they were imported into.

Minimal exposure

Only the web interface is published. Database, cache, storage and the API stay on an internal network, and the storage web console is switched off. Interactive API documentation is disabled in production.

Report downloads

Generated reports are downloaded through signed links that expire after one hour.

Audit trail

Sign-ins, account changes, project, template and report actions, library changes and settings changes are recorded with time, user and source address.

Data lifecycle

Completed projects and PoC screenshots are deleted automatically after the retention periods set by the Admin. Data owned by deleted users is purged after a 24-hour grace period.

Your responsibilities as operator

PMIS's protections depend on a correct deployment. You are responsible for:

The full list is the production checklist.

Never do this on a real deployment