Merge branch 'open-webui:dev' into dev

This commit is contained in:
Classic298
2026-03-20 15:41:41 +01:00
committed by GitHub
11 changed files with 96 additions and 7 deletions
+5
View File
@@ -35,6 +35,11 @@ To help us respond quickly, **please use your official work email address** and
[**Contact Enterprise Sales → sales@openwebui.com**](mailto:sales@openwebui.com)
| Deployment Model | License Requirements |
| :--- | :--- |
| **Standard Use** (Internal use with original branding exactly intact.) | **[Free](/license)** |
| **Enterprise Use** (White-labeling, rebranding, or modifications to original branding) | **[Enterprise License Required](/license)** |
Whether you need a full enterprise deployment or just want to explore what Open WebUI can do for your organization, we're here to help. Send us your deployment **end user count (seats)**, and lets explore how we can work together!
@@ -47,6 +47,11 @@ Some permissions are **dependent** on others (e.g., you cannot import models if
| **Tools Access** | **(Parent)** Access the **Tools** workspace to manage functions/tools. |
| **Tools Import** | *(Requires Tools Access)* Ability to import tools. |
| **Tools Export** | *(Requires Tools Access)* Ability to export tools. |
:::danger ⚠️ Tools Access = Root-Equivalent Access
**Treat the Tools Access permission as root-equivalent access.** Granting a user access to create or import Tools is equivalent to giving them shell access to your server, because Tools and Functions execute arbitrary Python code. Only grant this permission to users you would trust with direct access to your server. If you enable this permission for untrusted users, you are accepting the risk of arbitrary code execution on your host. For full details, see the [Plugin Security Warning](/features/extensibility/plugin/#-critical-security-warning).
:::
| **Skills Access** | Access the **Skills** workspace to create and manage reusable instruction sets. |
### 2. Sharing Permissions
@@ -5,6 +5,10 @@ title: "Action Function"
Action functions allow you to write custom buttons that appear in the message toolbar for end users to interact with. This feature enables more interactive messaging, allowing users to grant permission before a task is performed, generate visualizations of structured data, download an audio snippet of chats, and many other use cases.
:::danger ⚠️ Critical Security Warning
**Action Functions execute arbitrary Python code on your server.** Function creation is restricted to administrators only. Only install from trusted sources and review code before importing. A malicious Function could access your file system, exfiltrate data, or compromise your entire system. For full details, see the [Plugin Security Warning](/features/extensibility/plugin/#-critical-security-warning).
:::
:::warning Use Async Functions for Future Compatibility
Action functions should always be defined as `async`. The backend is progressively moving toward fully async execution, and synchronous functions may block execution or cause issues in future releases.
:::
@@ -3,6 +3,10 @@ sidebar_position: 3
title: "Filter Function"
---
:::danger ⚠️ Critical Security Warning
**Filter Functions execute arbitrary Python code on your server.** Function creation is restricted to administrators only. Only install from trusted sources and review code before importing. A malicious Function could access your file system, exfiltrate data, or compromise your entire system. For full details, see the [Plugin Security Warning](/features/extensibility/plugin/#-critical-security-warning).
:::
# 🪄 Filter Function: Modify Inputs and Outputs
Welcome to the comprehensive guide on Filter Functions in Open WebUI! Filters are a flexible and powerful **plugin system** for modifying data *before it's sent to the Large Language Model (LLM)* (input) or *after its returned from the LLM* (output). Whether youre transforming inputs for better context or cleaning up outputs for improved readability, **Filter Functions** let you do it all.
@@ -11,10 +11,8 @@ Unlike external tools that may require complex integrations, **Functions are bui
Think of Functions as **modular building blocks** that let you enhance how the WebUI works, tailored exactly to what you need. Theyre lightweight, highly customizable, and written in **pure Python**, so you have the freedom to create anything—from new AI-powered workflows to integrations with anything you use, like Google Search or Home Assistant.
:::danger ⚠️ Security Warning
**Functions execute arbitrary Python code on your server.** Only install Functions from trusted sources. Before importing any Function, review its source code to understand what it does. A malicious Function could access your file system, exfiltrate data, or compromise your system. See the [Security Policy](/security) for more details.
:::danger ⚠️ Critical Security Warning
**Functions execute arbitrary Python code on your server.** Function creation is restricted to administrators only. Only install from trusted sources and review code before importing. A malicious Function could access your file system, exfiltrate data, or compromise your entire system. For full details, see the [Plugin Security Warning](/features/extensibility/plugin/#-critical-security-warning).
:::
---
@@ -3,6 +3,10 @@ sidebar_position: 4
title: "Pipe Function"
---
:::danger ⚠️ Critical Security Warning
**Pipe Functions execute arbitrary Python code on your server.** Function creation is restricted to administrators only. Only install from trusted sources and review code before importing. A malicious Function could access your file system, exfiltrate data, or compromise your entire system. For full details, see the [Plugin Security Warning](/features/extensibility/plugin/#-critical-security-warning).
:::
# 🚰 Pipe Function: Create Custom "Agents/Models"
Welcome to this guide on creating **Pipes** in Open WebUI! Think of Pipes as a way to **adding** a new model to Open WebUI. In this document, we'll break down what a Pipe is, how it works, and how you can create your own to add custom logic and processing to your Open WebUI models. We'll use clear metaphors and go through every detail to ensure you have a comprehensive understanding.
@@ -3,6 +3,10 @@ sidebar_position: 2
title: "Development"
---
:::danger ⚠️ Critical Security Warning
**Workspace Tools execute arbitrary Python code on your server.** Only install from trusted sources, review code before importing, and restrict Workspace access to trusted administrators only. Granting a user the ability to create or import Tools is equivalent to giving them shell access to the server. For full details, see the [Plugin Security Warning](/features/extensibility/plugin/#-critical-security-warning).
:::
## Writing A Custom Toolkit
Toolkits are defined in a single Python file, with a top level docstring with metadata and a `Tools` class.
@@ -7,6 +7,10 @@ title: "Tools"
⚙️ Tools are the various ways you can extend an LLM's capabilities beyond simple text generation. When enabled, they allow your chatbot to do amazing things — like search the web, scrape data, generate images, talk back using AI voices, and more.
:::danger ⚠️ Critical Security Warning
**Workspace Tools and Functions execute arbitrary Python code on your server.** Only install from trusted sources, review code before importing, and restrict Workspace access to trusted administrators only. Granting a user the ability to create or import Tools is equivalent to giving them shell access to the server. For full details, see the [Plugin Security Warning](/features/extensibility/plugin/#-critical-security-warning).
:::
Because there are several ways to integrate "Tools" in Open WebUI, it's important to understand which type you are using.
---
@@ -0,0 +1,40 @@
---
sidebar_position: 7
title: "Lumenfall"
---
:::warning
This tutorial is a community contribution and is not supported by the Open WebUI team. It serves only as a demonstration on how to customize Open WebUI for your specific use case. Want to contribute? Check out the contributing tutorial.
:::
Open WebUI also supports image generation through [Lumenfall](https://lumenfall.ai), an AI media gateway that unifies all popular image models on many different providers into an OpenAI-compatible API. Free models are available.
### Initial Setup
1. Create a free account at [lumenfall.ai](https://lumenfall.ai).
2. Generate an API key from your [dashboard](https://lumenfall.ai/app/api_keys).
### Configuring Image Generation
1. In Open WebUI, navigate to the **Admin Panel** > **Settings** > **Images** menu.
2. Set the `Image Generation Engine` field to `Open AI` (Lumenfall uses the same syntax as OpenAI).
3. Change the API endpoint URL to `https://api.lumenfall.ai/openai/v1`.
4. Enter your Lumenfall API key.
5. The API version can be left blank.
6. Enter the model you wish to use. For example: `gemini-3-pro-image`, `gpt-image-1.5`, or `flux.2-max`. See all available models at [lumenfall.ai/models](https://lumenfall.ai/models).
7. Set the image size (e.g. `1024x1024`). Supported sizes depend on the model - if unsure, `1024x1024` works with most models.
![Screenshot of the Open WebUI Images settings page configured with Lumenfall.](/images/image-generation-and-editing/lumenfall-settings.png)
### Configuring Image Editing
Lumenfall also supports image editing through the same API:
1. On the same **Images** settings page, scroll to the **Edit Image** section.
2. Toggle **Image Edit** to on.
3. Set the `Image Edit Engine` to `Open AI`.
4. Enter the same API endpoint URL: `https://api.lumenfall.ai/openai/v1`.
5. Enter your Lumenfall API key.
6. Choose a model that supports editing (e.g. `gpt-image-1.5`).
For more details, see the [Lumenfall documentation](https://docs.lumenfall.ai/integrations/openwebui).
+24 -3
View File
@@ -13,6 +13,7 @@ We employ a mixture of automated and manual techniques to keep up with evolving
| Version | Supported |
| ------- | ------------------ |
| main | :white_check_mark: |
| dev | :x: |
| others | :x: |
## Where and How to Report Security Vulnerabilities
@@ -53,7 +54,7 @@ To ensure constructive, actionable reports that genuinely improve security, all
4. **Proof of Concept (PoC) is Mandatory**: Each submission must include a well-documented proof of concept that demonstrates the vulnerability. A PoC must show what security boundary was crossed (Confidentiality, Integrity, Availability, Authenticity, Non-repudiation), how this vulnerability was abused, and what actions the attacker can now perform. Valid PoCs include step-by-step reproduction instructions with exact commands, complete exploit code with detailed execution instructions, or screenshots/videos demonstrating the exploit (supplementary to written steps). If confidentiality is a concern, reporters are encouraged to create a private fork of the repository and share access with the maintainers. Reports lacking valid evidence may be disregarded. We will notify you if we struggle to reproduce the exploit using your PoC, but if we repeatedly cannot reproduce it, the report may be closed.
5. **Required Patch or Actionable Remediation Plan Submission**: Along with the PoC, reporters must provide a patch or actionable steps to remediate the identified vulnerability. This helps us evaluate and implement fixes rapidly and demonstrates commitment to the project's ongoing robustness.
5. **Remediation is required**: Along with the PoC, you must provide **either** a patch/PR **or** a remediation plan (actionable steps) that a maintainer can apply without guesswork. Your remediation guidance can include, for example: the likely root cause (what's wrong and where), the location(s) to change (file/module/function names if known), the recommended fix approach (validation/sanitization rules, auth checks, safe defaults, etc.), and any security tradeoffs or potential regressions to watch for.
6. **Streamlined Merging Process**: When vulnerability reports meet the above criteria, we can consider provided patches for immediate merging, similar to regular pull requests. Well-structured and thorough submissions will expedite the process of enhancing our security.
@@ -71,6 +72,24 @@ Non-compliant submissions will be closed, and repeat extreme violators may be ba
If you feel like you are not able to follow all outlined requirements for vulnerability-specific reasons, still do report it—we will check every report either way.
## Expected Response Timeframe
Due to the volume of incoming vulnerability reports, issues, discussions, pull requests, and general project maintenance — lately compounded by a large number of invalid AI-generated reports (see AI report transparency above) — our capacity to respond is limited. Open WebUI is a community-driven project maintained by a small team, and security reports are handled alongside all other project responsibilities.
**Please expect several weeks** for your report to be triaged, investigated, fixed, and published. While we aim to respond to every report as quickly as possible, it is normal to experience periods of silence lasting up to several weeks. **This does not mean your report has been ignored** — it means we have not yet had the capacity to address it. The entire process can realistically take multiple weeks from initial submission to final publication. We appreciate your patience and understanding.
## Confidential Disclosure
Vulnerability reports submitted through GitHub Security Advisories are **private and confidential**. Public disclosure of **ANY** details related to a submitted vulnerability report is **STRICTLY PROHIBITED** until the advisory has been **fully published** — not merely when a CVE ID has been assigned, but when the advisory itself is publicly visible.
This prohibition applies to **all channels**, including but not limited to:
- Comments on pull requests, issues, or discussions (on GitHub or elsewhere)
- Social media, blogs, forums, or any other website
- Discord, Reddit, or any other platform, website or service
Premature disclosure undermines the security of all Open WebUI users and **violates the trust** inherent in the responsible disclosure process. **Reporters who publicly disclose vulnerability details before official publication <ins>may be permanently banned from future reporting.</ins>**
## For Non-Vulnerability Related Security Concerns
If your concern does not meet the vulnerability requirements outlined above, is not a vulnerability, but is still related to security concerns, then use the following channels instead:
@@ -117,14 +136,16 @@ When you install a Tool, Function, or Pipeline, you are granting it the ability
### What Is NOT a Vulnerability
The following scenarios are **not** considered vulnerabilities because they require administrator action:
The following scenarios are **not** considered vulnerabilities because they require administrator action (see also [Admin Actions Are Out of Scope](#reporting-guidelines) and [Threat Model Understanding](#reporting-guidelines) in the reporting guidelines above):
- An admin installing a malicious Tool or Function
- An admin granting Workspace access to an untrusted user
- An admin importing code from an untrusted source
- An attacker with write access to the data volume injecting malicious plugins
These scenarios represent **admin negligence** or **environment compromise**, not vulnerabilities in Open WebUI itself. See [our Security Policy](https://github.com/open-webui/open-webui/security) for details.
More generally, **reports describing ANY attack chain that involves Tools or Functions — including but not limited to code execution, file access, network requests, or environment variable access — will be closed as not a vulnerability / intended behavior.** If an administrator grants Tool permissions to untrusted users, this constitutes intentional misconfiguration.
These scenarios represent **admin negligence** or **environment compromise**, not vulnerabilities in Open WebUI itself. See [our Security Policy](https://github.com/open-webui/open-webui/security) and the [Plugin Security documentation](/features/extensibility/plugin/) for details.
## Product Security Process
Binary file not shown.

After

Width:  |  Height:  |  Size: 280 KiB