Skip to content

Commit 886cc52

Browse files
docs: add security policy (#1511)
1 parent 92d8516 commit 886cc52

2 files changed

Lines changed: 64 additions & 0 deletions

File tree

.github/SECURITY.md

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
# Security Policy
2+
3+
Slack takes the security of its software and services seriously, including all open-source repositories managed through the [slackapi](https://github.com/slackapi) GitHub organization.
4+
5+
## Reporting a Vulnerability
6+
7+
**Do NOT report security vulnerabilities through public GitHub issues, pull requests, or discussions.**
8+
9+
If you believe you have found a security vulnerability in `slack-bolt`, please report it through the Slack bug bounty program on HackerOne:
10+
11+
**<https://hackerone.com/slack>**
12+
13+
Even if `slack-bolt` is not explicitly listed as an in-scope asset on the HackerOne program page, reports for vulnerabilities in this package should still be submitted there. The Slack security team triages reports for all `slackapi` open-source repositories through this program.
14+
15+
If HackerOne is inaccessible, you may alternatively report the issue to [security@salesforce.com](mailto:security@salesforce.com).
16+
17+
Please do not discuss potential vulnerabilities in public without first coordinating with the security team.
18+
19+
## What to Include
20+
21+
To help us triage and respond quickly, please include:
22+
23+
- Type of vulnerability (e.g., signature bypass, token leakage, denial of service)
24+
- Affected version(s) of `slack-bolt`
25+
- Step-by-step reproduction instructions
26+
- Proof-of-concept code or payloads, if available
27+
- Impact assessment: what an attacker could achieve
28+
- Any specific configuration required to trigger the vulnerability
29+
- Affected source file paths, if known
30+
31+
## Threat Model
32+
33+
Bolt for Python is a framework that sits between the Slack platform and developer application code. Its security boundary covers the integrity and confidentiality of that interface.
34+
35+
### In Scope
36+
37+
The following are considered framework vulnerabilities:
38+
39+
- Bypass of request signature verification (HMAC-SHA256 validation)
40+
- OAuth token leakage or cross-tenant token exposure during authorization flows
41+
- Denial of service caused by malformed or specially crafted payloads processed by framework internals
42+
- Authentication or authorization bypass in any built-in adapter
43+
- Information disclosure through framework error responses or timing side channels
44+
- Bypass of the `ssl_check` endpoint protections
45+
46+
### Out of Scope
47+
48+
The following are NOT framework vulnerabilities:
49+
50+
- Vulnerabilities in the Python runtime, operating system, or hosting infrastructure
51+
- Security issues in developer application logic built on top of Bolt (e.g., SQL injection caused by passing unsanitized payload data to a database)
52+
- Vulnerabilities in third-party PyPI packages chosen and installed by the developer outside of Bolt's direct dependencies
53+
- Vulnerabilities in Slack's server-side platform infrastructure (report those directly under Slack's main HackerOne scope)
54+
- Attacks that require possession of a valid signing secret or bot token
55+
- Arbitrary attribute injection or unsafe deserialization caused by developer code handling untrusted input
56+
- Issues that only affect end-of-life versions with no reproduction on supported versions
57+
58+
## Disclosure Policy
59+
60+
This project follows coordinated disclosure:
61+
62+
- Allow a reasonable timeframe for the team to investigate, develop, and release a fix before any public disclosure.
63+
- Researchers who follow responsible disclosure practices are eligible for recognition and bounty consideration through the Slack HackerOne program.

pyproject.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ dependencies = ["slack_sdk>=3.38.0,<4"]
2626

2727
[project.urls]
2828
Documentation = "https://docs.slack.dev/tools/bolt-python/"
29+
Source = "https://github.com/slackapi/bolt-python"
2930

3031
[tool.setuptools.packages.find]
3132
include = ["slack_bolt*"]

0 commit comments

Comments
 (0)