High severityNVD Advisory· Published Oct 10, 2022· Updated Apr 23, 2025
Exposure of sensitive Slack webhook URLs in debug logs and traces
CVE-2022-39292
Description
Slack Morphism is a modern client library for Slack Web/Events API/Socket Mode and Block Kit. Debug logs expose sensitive URLs for Slack webhooks that contain private information. The problem is fixed in version 1.3.2 which redacts sensitive URLs for webhooks. As a workaround, people who use Slack webhooks may disable or filter debug logs.
Affected packages
Versions sourced from the GitHub Security Advisory.
| Package | Affected versions | Patched versions |
|---|---|---|
slack-morphismcrates.io | < 1.3.2 | 1.3.2 |
Affected products
1- Range: <= 1.3.0
Patches
248a1da2dc2adRedacted hash support
1 file changed · +10 −3
src/hyper_tokio/connector.rs+10 −3 modified@@ -12,6 +12,8 @@ use rvstruct::ValueStruct; use crate::prelude::hyper_ext::HyperExtensions; use crate::ratectl::SlackApiRateControlConfig; +use std::hash::Hash; +use std::hash::Hasher; use std::sync::Arc; use std::time::Duration; use tracing::*; @@ -70,8 +72,12 @@ impl<H: 'static + Send + Sync + Clone + connect::Connect> SlackClientHyperConnec RS: for<'de> serde::de::Deserialize<'de>, { let uri_str = if context.is_sensitive_url { + let mut hasher = std::collections::hash_map::DefaultHasher::new(); + request.uri().path().to_string().hash(&mut hasher); + let u64 = hasher.finish(); + format!( - "{}://{}/-redacted-", + "{}://{}/-redacted-/{}", request .uri() .scheme() @@ -81,7 +87,8 @@ impl<H: 'static + Send + Sync + Clone + connect::Connect> SlackClientHyperConnec .uri() .host() .map(|host| host.to_string()) - .unwrap_or_else(|| "unknown-host".to_string()) + .unwrap_or_else(|| "unknown-host".to_string()), + u64 ) } else { request.uri().to_string() @@ -91,7 +98,7 @@ impl<H: 'static + Send + Sync + Clone + connect::Connect> SlackClientHyperConnec debug!( slack_uri = uri_str.as_str(), "Sending HTTP request to {}", - request.uri() + uri_str.as_str() ); });
65ef9fac4f39Slack Webhook URL redacted from debug logs
4 files changed · +26 −2
Cargo.toml+1 −1 modified@@ -1,6 +1,6 @@ [package] name = "slack-morphism" -version = "1.3.0" +version = "1.3.1-alpha.0" authors = ["Abdulla Abdurakhmanov <me@abdolence.dev>"] edition = "2021" license = "Apache-2.0"
src/api/webhook.rs+1 −0 modified@@ -33,6 +33,7 @@ where rate_control_params: Some(&POST_WEBHOOK_SPECIAL_LIMIT_RATE_CTL), token: None, tracing_span: &http_webhook_span, + is_sensitive_url: true, }; self.http_api
src/client.rs+5 −0 modified@@ -52,6 +52,7 @@ pub struct SlackClientApiCallContext<'a> { pub rate_control_params: Option<&'a SlackApiMethodRateControlConfig>, pub token: Option<&'a SlackApiToken>, pub tracing_span: &'a Span, + pub is_sensitive_url: bool, } pub trait SlackClientHttpConnector { @@ -238,6 +239,7 @@ where rate_control_params, token: Some(self.token), tracing_span: &self.span, + is_sensitive_url: false, }; self.client @@ -262,6 +264,7 @@ where rate_control_params, token: Some(self.token), tracing_span: &self.span, + is_sensitive_url: false, }; self.client @@ -285,6 +288,7 @@ where rate_control_params, token: Some(self.token), tracing_span: &self.span, + is_sensitive_url: false, }; self.client @@ -308,6 +312,7 @@ where rate_control_params, token: Some(self.token), tracing_span: &self.span, + is_sensitive_url: false, }; self.client
src/hyper_tokio/connector.rs+19 −1 modified@@ -69,7 +69,24 @@ impl<H: 'static + Send + Sync + Clone + connect::Connect> SlackClientHyperConnec where RS: for<'de> serde::de::Deserialize<'de>, { - let uri_str = request.uri().to_string(); + let uri_str = if context.is_sensitive_url { + format!( + "{}://{}/<redacted>", + request + .uri() + .scheme() + .map(|scheme| scheme.to_string()) + .unwrap_or_else(|| "unknown-scheme".to_string()), + request + .uri() + .host() + .map(|host| host.to_string()) + .unwrap_or_else(|| "unknown-host".to_string()) + ) + } else { + request.uri().to_string() + }; + context.tracing_span.in_scope(|| { debug!( slack_uri = uri_str.as_str(), @@ -287,6 +304,7 @@ impl<H: 'static + Send + Sync + Clone + connect::Connect> SlackClientHttpConnect rate_control_params: None, token: None, tracing_span: &http_oauth_span, + is_sensitive_url: false, }; self.send_rate_controlled_request(
Vulnerability mechanics
Generated by null/stub on May 9, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.
References
7- github.com/advisories/GHSA-4mjx-2gh5-ph8hghsaADVISORY
- nvd.nist.gov/vuln/detail/CVE-2022-39292ghsaADVISORY
- github.com/abdolence/slack-morphism-rust/commit/48a1da2dc2ad3a5ccc60036d43f6f8fbb2c15f1dghsaWEB
- github.com/abdolence/slack-morphism-rust/commit/65ef9fac4f39c4e171e2952a6cf029bb0d059a89ghsaWEB
- github.com/abdolence/slack-morphism-rust/releases/tag/v1.3.2ghsaWEB
- github.com/abdolence/slack-morphism-rust/security/advisories/GHSA-4mjx-2gh5-ph8hghsaWEB
- rustsec.org/advisories/RUSTSEC-2022-0087.htmlghsaWEB
News mentions
0No linked articles in our index yet.