Only Jira Cloud is supported. Jira Data Center / Server is not currently compatible because the integration relies on Atlassian’s OAuth 2.0 (3LO) flow and Cloud webhook APIs.
What you get
- Ticket creation for one or many vulnerabilities, with three grouping strategies (per vulnerability, per type, per file).
- Rich descriptions in Atlassian Document Format (ADF), including CVSS, CWE/OWASP tags, file location, fix recommendations, and a direct link back to the CybeDefend view.
- Severity → priority mapping (Critical → Highest, High → High, …) applied to each issue.
- Auto-create after scan to file tickets without human intervention (configurable per project).
- Branch allow-list so tickets are only created for findings on branches you care about (e.g.
main,develop). - Live status sync via Jira webhooks — status, assignee, priority, and project moves are reflected in CybeDefend automatically.
- Link to existing issue for vulnerabilities already tracked under another ticket.
- Duplicate protection — open tickets are reused; closed tickets do not re-open silently.
Prerequisites
Atlassian account with site access
You need a user that has access to the target Jira Cloud site and can install OAuth apps for it.
Required Jira scopes
The OAuth app requests the following scopes:
read:jira-work— list projects, read issueswrite:jira-work— create and update ticketsread:jira-user— resolve assigneesmanage:jira-webhook— register the status-sync webhookoffline_access— refresh tokens automatically
1. Connect Jira to your organization
Open organization integrations
In CybeDefend, go to Organization Settings → Integrations and select Jira.
Start the OAuth flow
Click Connect Jira. You will be redirected to Atlassian to authorize the CybeDefend app. A CSRF state token is stored server-side for 10 minutes — finish the flow within that window.
Choose your Jira site
Approve access for the Jira Cloud site you want to use. If multiple sites are accessible to your Atlassian account, the integration uses the first accessible site returned by Atlassian.
Tokens are encrypted at rest. Refresh is automatic — you do not need to re-authorize unless the integration is uninstalled from the Atlassian side.
2. Map a CybeDefend project to a Jira project
The OAuth connection is at the organization level. Each CybeDefend project then points to a single Jira project that will receive its tickets.Pick the Jira project
Select the destination Jira project from the dropdown. CybeDefend fetches up to 100 projects from the connected site, ordered by name.
Restrict by branch (optional)
Add up to 50 branches (e.g.
main, develop, release/*) to the allow-list. Vulnerabilities detected on any other branch will be silently skipped when creating tickets. Leave the list empty to allow all branches.3. Create tickets for vulnerabilities
From the vulnerability list (SAST, SCA, IaC, Container, Secret), select one or more findings and choose Create Jira issues. You pick the grouping mode:| Mode | Behavior | When to use |
|---|---|---|
| Per vulnerability | One Jira ticket per individual detection (vulnerabilityId + filePath + line, or vulnId + package@version for SCA). | Fine-grained tracking, small batches. |
| Per vulnerability type | One ticket per rule / CVE, grouping all occurrences. | Default — best signal-to-noise ratio. |
| Per file | One ticket per (scanner, file path). SCA tickets group by dependency manifest. | Code reviews organized by file owner. |
What’s in the ticket
- Summary — human-readable name (e.g.
lodash: Prototype pollution in lodash.merge) with a[CybeDefend]prefix and a count suffix when grouped. - Description (ADF) — severity, CVSS, CWE/OWASP, fix recommendation, code snippet for SAST, package details for SCA, and a deep link back to the matching CybeDefend view (filtered by name).
- Priority — mapped from severity: Critical → Highest, High → High, Medium → Medium, Low → Low, Info → Lowest.
- Issue type —
Bugif available, otherwiseTask, thenStory, falling back to the first non-subtask type in the project’s create-meta.
Before creating a ticket, CybeDefend checks for an existing open ticket with the same group key, or vulnerabilities already linked to a non-terminal ticket (
open, in progress, …). Duplicates are skipped, not re-filed. Tickets in done, closed, resolved, or deleted states do not block re-creation.4. Link to an existing Jira issue
If a ticket already exists for the work, you can attach CybeDefend vulnerabilities to it instead of creating a new one.Pick the vulnerabilities
Select the findings in the CybeDefend vulnerability list and choose Link to existing Jira issue.
Enter the issue key
Provide the Jira key (e.g.
TRI-142). CybeDefend validates the key exists and reads its current summary and status.5. Status synchronization
CybeDefend registers a dynamic webhook at install time, listening tojira:issue_updated and jira:issue_deleted for every project on the site. When a ticket changes in Jira, CybeDefend updates the linked vulnerabilities within seconds:
- Status — reflected as
issueState(e.g.in progress,done). - Priority — stored on the mapping.
- Assignee — the Jira display name is mirrored.
- Project key — if a ticket is moved between Jira projects, the new key is detected via the changelog and all mappings are updated.
- Deleted issues — marked as
deletedin CybeDefend.
6. Disconnecting Jira
Disconnecting from Organization Settings → Integrations → Jira → Disconnect will:- Remove the OAuth integration and stored tokens.
- Delete every per-project Jira configuration (mapping, allowed branches, auto-create setting).
- Remove every vulnerability ↔ Jira issue mapping for the organization.
- Leave the Jira tickets untouched — they remain in Jira and are no longer linked back to CybeDefend.
Troubleshooting
“No Jira Cloud sites accessible” during install
“No Jira Cloud sites accessible” during install
Your Atlassian account does not have access to any Jira Cloud site, or your administrator has restricted OAuth apps for the site. Ask your Jira admin to grant access or approve the CybeDefend app.
“No Jira project configured” when creating a ticket
“No Jira project configured” when creating a ticket
The CybeDefend project has no mapping yet. Open Project Settings → Integrations → Jira and select a destination Jira project.
Tickets are not being auto-created after a scan
Tickets are not being auto-created after a scan
Check three things: (1) Auto-create is enabled on the CybeDefend project, (2) the scan’s branch is in the allow-list (or the list is empty), (3) the vulnerability isn’t already linked to an open Jira ticket — duplicates are intentionally skipped.
Status changes in Jira don't appear in CybeDefend
Status changes in Jira don't appear in CybeDefend
The webhook may have been removed at the Jira side, or the webhook expired. Disconnect and reconnect the integration to re-register it, or use the manual Sync status action on the project’s Jira panel.
“Invalid or expired OAuth state” on callback
“Invalid or expired OAuth state” on callback
The CSRF state token lives for 10 minutes. Restart the install flow from CybeDefend instead of refreshing the Atlassian callback page.
Related: Project Vulnerability List · Updating Vulnerabilities