Skip to content

fix: strip smuggled payload from ssl_check requests#2898

Merged
WilliamBergamin merged 1 commit into
slackapi:mainfrom
homanp:fix/ssl-check-payload-smuggling
Apr 30, 2026
Merged

fix: strip smuggled payload from ssl_check requests#2898
WilliamBergamin merged 1 commit into
slackapi:mainfrom
homanp:fix/ssl-check-payload-smuggling

Conversation

@homanp
Copy link
Copy Markdown
Contributor

@homanp homanp commented Apr 30, 2026

Fixes #2897

When ssl_check=1 is in a form-encoded body, parseAndVerifyHTTPRequest skips signature verification and returns the buffered request as-is. Problem is, the raw body can also contain a payload field that parseHTTPRequestBody will extract and process as a real event — no signing secret needed.

This rewrites rawBody to only contain the ssl_check field before returning, so nothing else can be smuggled through.

Tested that:

  • Smuggled ssl_check=1&payload={...} no longer triggers event handlers
  • Legitimate ssl_check requests still return 200
  • Requests without ssl_check still require valid signatures

When ssl_check=1 is present in a form-encoded body, signature
verification is skipped. An attacker can include a payload field
alongside ssl_check that gets extracted and processed as a real
event, bypassing authentication entirely.

Fix: rewrite rawBody to only contain the ssl_check field before
returning, so parseHTTPRequestBody can't extract a smuggled payload.

Fixes slackapi#2897
@homanp homanp requested a review from a team as a code owner April 30, 2026 09:32
@changeset-bot
Copy link
Copy Markdown

changeset-bot Bot commented Apr 30, 2026

⚠️ No Changeset found

Latest commit: a245279

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@salesforce-cla
Copy link
Copy Markdown

Thanks for the contribution! Before we can merge this, we need @homanp to sign the Salesforce Inc. Contributor License Agreement.

@homanp
Copy link
Copy Markdown
Contributor Author

homanp commented Apr 30, 2026

Can't sign the contract, getting: Could not sign the CLA, please contact: oss-bots@salesforce.com

@codecov
Copy link
Copy Markdown

codecov Bot commented Apr 30, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 93.62%. Comparing base (ad576a1) to head (a245279).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #2898   +/-   ##
=======================================
  Coverage   93.62%   93.62%           
=======================================
  Files          44       44           
  Lines        7855     7858    +3     
  Branches      687      687           
=======================================
+ Hits         7354     7357    +3     
  Misses        496      496           
  Partials        5        5           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@WilliamBergamin
Copy link
Copy Markdown
Contributor

@homanp your changes look good 💯 could you try signing the CLA again, sometimes we need to close and reopen the pull request

We can merge these changes as is and I can follow up with some unit tests and edge case around evaluating sll_check truthy, but if you want o add these you're more then well come 🙏

@homanp
Copy link
Copy Markdown
Contributor Author

homanp commented Apr 30, 2026

@homanp your changes look good 💯 could you try signing the CLA again, sometimes we need to close and reopen the pull request

We can merge these changes as is and I can follow up with some unit tests and edge case around evaluating sll_check truthy, but if you want o add these you're more then well come 🙏

Still can't. same issue. tried with multiple different emails. get the same error of contacting oss-bot

@homanp
Copy link
Copy Markdown
Contributor Author

homanp commented Apr 30, 2026

Tried signing with incognito mode as well and still get the error. Tried with safari as well, but still the same.

@homanp
Copy link
Copy Markdown
Contributor Author

homanp commented Apr 30, 2026

Screenshot 2026-04-30 at 17 41 43 I get this though @WilliamBergamin

@WilliamBergamin WilliamBergamin added bug M-T: confirmed bug report. Issues are confirmed when the reproduction steps are documented security semver:patch labels Apr 30, 2026
@WilliamBergamin WilliamBergamin added this to the @slack/bolt@next milestone Apr 30, 2026
@WilliamBergamin
Copy link
Copy Markdown
Contributor

@homanp would you be able to try signing the cla again, we will try to review the logs when you do it 🙏

@homanp
Copy link
Copy Markdown
Contributor Author

homanp commented Apr 30, 2026

@homanp would you be able to try signing the cla again, we will try to review the logs when you do it 🙏

doing now.

@homanp
Copy link
Copy Markdown
Contributor Author

homanp commented Apr 30, 2026

@homanp would you be able to try signing the cla again, we will try to review the logs when you do it 🙏

still the same

@WilliamBergamin
Copy link
Copy Markdown
Contributor

I got internal confirmation that you signed the CLA 🚀 it seems like its just not showing up here

@WilliamBergamin WilliamBergamin merged commit e23efe8 into slackapi:main Apr 30, 2026
48 of 49 checks passed
@homanp
Copy link
Copy Markdown
Contributor Author

homanp commented Apr 30, 2026

I got internal confirmation that you signed the CLA 🚀 it seems like its just not showing up here

Cool

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug M-T: confirmed bug report. Issues are confirmed when the reproduction steps are documented cla:missing security semver:patch

Projects

None yet

Development

Successfully merging this pull request may close these issues.

HTTPReceiver: ssl_check bypass allows unauthenticated event injection

2 participants