CVE-2026-48768: Critical TypeBot Upload Flaw
Critical CVSS (9.3) reachable over network.
TL;DR - CVE-2026-48768 is a critical unauthenticated upload and object-key injection flaw in TypeBot 3.16.1 and earlier. - Anonymous visitors can upload active web content through a published bot containing a file-input block. - Upgrade to TypeBot 3.17.0 or later; no verified in-the-wild exploitation has been identified.
CVE-2026-48768 is a critical TypeBot vulnerability affecting TypeBot 3.16.1 and earlier. The flaw allows unauthenticated visitors to request upload URLs through a published bot and potentially place attacker-controlled HTML, SVG, or JavaScript content in publicly served storage paths. Administrators should upgrade to TypeBot 3.17.0 or later and review application and object-storage logs.
Vulnerability at a Glance
| Field | Details |
|---|---|
| CVE | CVE-2026-48768 |
| Product | TypeBot |
| Affected versions | 3.16.1 and earlier |
| Fixed version | 3.17.0 |
| CVSS | 9.3, Critical |
| Attack vector | Network |
| Authentication required | No |
| Privileges required | None for the vulnerable request path |
| Patch available | Yes |
| CISA KEV status | Not listed |
| Confirmed exploitation | None identified in the consulted sources |
CVE-2026-48768 affects TypeBot’s file-upload workflow. The vulnerable endpoint is exposed without authentication and can be reached by an anonymous visitor interacting with a published bot that includes a file-input block. The endpoint returns a presigned upload URL after processing a user-controlled fileName value.
The risk extends beyond ordinary file-upload abuse. TypeBot uses attacker-influenced path components when constructing public S3 object keys, while the presigned upload does not constrain the uploaded object’s Content-Type. This combination can place HTML, SVG, or JavaScript content under publicly served paths. Depending on deployment and browser-origin configuration, the result may include arbitrary content hosting, cross-tenant object placement, or stored cross-site scripting.
Analyst’s Take: Patch first. The vulnerable path requires no authentication, and the fixed release is available in TypeBot 3.17.0. The lack of verified exploitation or a CISA KEV entry should inform monitoring, not delay remediation for Internet-facing deployments.
For broader guidance on investigating security findings, see our AI red-team FAQ. For password and access-control hardening, review our guide to whether you really need a password manager.
What Is This Vulnerability?
The vulnerable endpoint is:
POST /api/blocks/file-input/v3/generate-upload-url
In affected releases, the endpoint does not require authentication. It accepts a fileName value supplied by the client and uses that value to construct an object key for S3-compatible storage. Because the filename is not sufficiently sanitized or constrained, an attacker can influence path components by including forward slashes.
Several conditions contribute to the issue:
- The upload-URL generation operation is unauthenticated.
- Attacker-controlled filename data is incorporated into a public object path.
- The resulting presigned
PUTURL does not bind the upload to an approvedContent-Type. - An attacker can request an upload location and place HTML, SVG, or JavaScript where it may later be served by a public storage origin.
The CVE description indicates that conventional ../ traversal is blocked by S3 or MinIO canonicalization and produces a signature mismatch. That behavior does not eliminate the issue. Forward-slash path injection remains relevant because it can alter the object-key location without relying on parent-directory traversal.
Technical Notes
A simplified representation of the vulnerable request path is:
POST /api/blocks/file-input/v3/generate-upload-url
Content-Type: application/json
{
"fileName": "uploads/example.html"
}
The precise request body may vary by TypeBot deployment and application flow. Defenders should not treat rejection of ../ as proof that object-key injection is prevented. The security control must also reject or safely transform user-controlled path separators and enforce an approved content-type policy at upload and retrieval time.
Who Is Affected?
The affected product is TypeBot, an open-source chatbot builder maintained in the baptisteArno/typebot.io repository. The vulnerable range is TypeBot 3.16.1 and earlier. The vendor fix is available in TypeBot 3.17.0, so administrators should treat all deployments below that version as potentially affected unless they have independently backported the relevant remediation.
The issue is especially important for self-hosted deployments that expose published bots to the Internet and use S3 or MinIO for public or semi-public file storage. Risk may be higher where uploaded objects are served from the same origin as the TypeBot application, where bucket objects are publicly readable, or where storage responses permit uploaded HTML or SVG to execute in a browser context.
Verify the running application version rather than relying only on a package lockfile or repository branch. Source-based deployments, container images, and managed deployment pipelines can drift from the version recorded in an inventory system. Check the deployed image tag, release metadata, or checked-out commit and compare it with the TypeBot 3.17.0 release.
CVSS Score Breakdown
The reported CVSS base score is 9.3, rated Critical. The available research record identifies the score but does not provide the complete CVSS vector string. Consequently, the individual vector components should not be reconstructed from the score alone. Consult the authoritative NVD record for the full vector if exact metric values are required for risk modeling or compliance documentation.
The practical severity is clear. The attack is remotely reachable through an HTTP endpoint, does not require an authenticated account on the vulnerable path, and can affect the confidentiality and integrity of content served through the application’s storage integration. Potential impact includes hosting attacker-controlled active content and, in applicable browser-origin configurations, stored XSS.
| Risk factor | Operational interpretation |
|---|---|
| Network-reachable | An attacker can interact with the endpoint remotely through a published bot |
| Authentication | No authentication is required for the vulnerable upload-URL generation path |
| Input control | The attacker supplies fileName data used in object-key construction |
| Content control | The upload is not bound to a safe Content-Type |
| Potential impact | Public active-content hosting, cross-tenant placement, and stored XSS depending on deployment |
Do not downgrade the issue solely because a successful browser exploit may depend on storage headers, origin separation, or bucket policy. Those deployment conditions affect exploitability and impact in a particular environment, but the underlying unauthenticated upload and object-key weaknesses remain present in affected TypeBot versions.
Exploitation Status
No verified in-the-wild exploitation was identified in the consulted sources. CVE-2026-48768 is also not listed in the CISA Known Exploited Vulnerabilities catalog. As a result, there is no CISA date-added value, remediation due date, required-action entry, or ransomware-campaign designation for this CVE at the time of writing.
The absence of a CISA KEV entry does not show that exploitation is impossible or that the vulnerability is low risk. It means only that CISA has not listed it as a known exploited vulnerability. Internet-facing TypeBot deployments should continue to treat the issue as high priority because exploitation requires no account and the vulnerable endpoint supports attacker-controlled content placement.
Public technical detail is available. The CVE record and the vendor’s GitHub security advisory describe the endpoint, input conditions, object-key behavior, lack of Content-Type binding, and the distinction between blocked ../ traversal and exploitable forward-slash injection. No separate public exploit repository or independently verified campaign was identified in the supplied research. Describe this as public technical disclosure with no confirmed exploitation identified, not as proof that no proof of concept exists anywhere.
How to Detect It
Start by identifying TypeBot instances running 3.16.1 or earlier, then determine whether they expose published bots with file-input blocks. Review reverse-proxy, application, and storage logs for unauthenticated requests to the upload-URL generation endpoint. Pay particular attention to unusual filename values containing forward slashes, unexpected extensions, or names associated with active web content.
A useful first-pass web log search is:
grep -Ei \
'POST /api/blocks/file-input/v3/generate-upload-url' \
/var/log/nginx/access.log /var/log/apache2/access.log
To find suspicious filename indicators in JSON-aware application logs:
jq -r '
select(
(.path? == "/api/blocks/file-input/v3/generate-upload-url")
or (.url? == "/api/blocks/file-input/v3/generate-upload-url")
)
| select(
((.body.fileName? // "") | test(
"(^|/)([^/]+\\.(html?|svg|js))$|\\.\\.(/|$)|%2f|%5c";
"i"
))
)
' application.log
Field names differ by logging stack, so adapt the query to the local schema. The useful indicators are the endpoint, anonymous or unauthenticated access, filename values containing path separators, and uploads resulting in objects with .html, .svg, .js, or other active-content extensions.
Technical Notes
A generic Sigma-style detection concept for reverse-proxy logs is:
title: Suspicious TypeBot File Upload URL Generation
logsource:
category: webserver
detection:
selection:
http_method: POST
url|endswith: /api/blocks/file-input/v3/generate-upload-url
suspicious_filename:
request_body|contains:
- ".html"
- ".htm"
- ".svg"
- ".js"
- "../"
- "%2f"
- "%5c"
condition: selection and suspicious_filename
level: high
This is a detection starting point rather than a drop-in rule. If request bodies are not logged, correlate endpoint access with S3 or MinIO PUT operations and object names containing unexpected path segments or active-content extensions. Preserve relevant logs before rotating them, including source IP, timestamp, bot or tenant identifier, generated object key, response status, and storage object metadata.
Mitigation and Patching
The primary remediation is to upgrade TypeBot to 3.17.0 or later. The supplied research identifies TypeBot 3.17.0 as the fixed version. Deploy the release through the normal source, container, or package workflow, then verify that the running service is using the upgraded build.
For a source checkout, a typical release update is:
git fetch --tags origin
git checkout v3.17.0
# Run the repository's documented dependency installation and build steps.
# Restart the TypeBot application using the deployment's normal process.
These commands do not cover every TypeBot deployment. Containerized installations should update to an image built from the fixed release, while platform-specific deployments should follow the project’s release instructions. After deployment, confirm the runtime version and test that the upload flow still enforces authentication, safe object-key construction, and approved content types.
If immediate patching is not possible, reduce exposure. Restrict access to the upload-URL generation route at the reverse proxy, require authentication where the deployment permits it, or temporarily disable public file-input functionality. A route-level block can serve as an emergency measure, but it may disrupt legitimate bots:
location = /api/blocks/file-input/v3/generate-upload-url {
return 403;
}
This workaround does not remove the vulnerability from the application and should be removed only after the fixed version is deployed and validated. Review previously issued presigned URLs as well, and invalidate or shorten their remaining lifetime where operationally appropriate.
Technical Notes
Self-hosted operators should apply defense in depth around object storage:
1. Upgrade TypeBot to 3.17.0 or later.
2. Require authentication or authorization before generating upload URLs.
3. Reject path separators and canonicalize filenames before object-key construction.
4. Allow only approved content types and verify file signatures where practical.
5. Store uploads outside the application origin.
6. Serve untrusted files with restrictive Content-Disposition headers.
7. Review bucket policies and MinIO access policies for public write or read exposure.
8. Audit existing objects for HTML, SVG, JavaScript, and unexpected key prefixes.
Serve uploaded content from an isolated, non-executable origin whenever possible. Storage responses should use safe metadata, including restrictive Content-Disposition, and should not allow attacker-controlled objects to inherit the trusted application’s browser origin. Assess whether existing public objects require cleanup, because patching prevents new exploitation but does not automatically remove content uploaded before remediation.
References
The primary technical sources are the NVD record and the vendor’s GitHub Security Advisory. The advisory identifies the affected versions, vulnerable endpoint, object-key and content-type conditions, and the fixed release.
- NVD: CVE-2026-48768
- TypeBot release
v3.17.0: GitHub release - Vendor advisory: GHSA-fp7x-6pqh-vhvf
- CISA Known Exploited Vulnerabilities catalog: CISA KEV
- CISA vulnerability summary: Week of June 15, 2026
The immediate priority is to upgrade TypeBot 3.16.1 and earlier deployments to TypeBot 3.17.0 or later, then review upload and storage logs for evidence of attacker-controlled object placement. Public technical detail exists, but no verified in-the-wild exploitation was identified and the CVE is not currently listed in CISA KEV.
This article may contain affiliate links. We earn a commission on qualifying purchases at no extra cost to you.