OPNSense
opnsense.org HardwareEnterprise firewall and router for protecting networks, built on the FreeBSD system.
- Homepage: opnsense.org
- GitHub: github.com/opnsense/core
- Web info: web-check.xyz/check/opnsense.org
OPNSense Source Code
Author
Description
OPNsense GUI, API and systems backend
Homepage
https://opnsense.org/License
BSD-2-Clause
Created
13 Dec 14
Last Updated
12 Jul 26
Latest version
Primary Language
PHP
Size
101,349 KB
Stars
4,515
Forks
966
Watchers
4,515
Language Usage
Star History
Top Contributors
-
@fichtner (9752)
-
@AdSchellevis (7664)
-
@swhite2 (702)
-
@Monviech (386)
-
@jschellevis (186)
-
@dotike (171)
-
@kulikov-a (141)
-
@MichaelDeciso (72)
-
@taguchi-ch (56)
-
@fabianfrz (53)
-
@NOYB (49)
-
@8191 (46)
-
@mimugmail (42)
-
@sopex (29)
-
@fraenki (28)
-
@maurice-w (26)
-
@pv2b (23)
-
@peppelinux (14)
-
@vnxme (13)
-
@opnsenseuser (13)
-
@gitdevmod (12)
-
@Greelan (11)
-
@agh1467 (11)
-
@nhirokinet (10)
-
@TomWalraven (10)
-
@jsoref (9)
-
@fredronnv (9)
-
@evbevz (8)
-
@phpb-com (8)
-
@ypid (8)
-
@jfayre (8)
-
@cbasolutions (7)
-
@ljm42 (7)
-
@Northguy (7)
-
@gwjo (6)
-
@mmorev (6)
-
@Stephanowicz (6)
-
@chrisch1974 (6)
-
@djGrrr (6)
-
@doktornotor (6)
-
@soif (6)
-
@johnaheadley (5)
-
@lin-xianming (5)
-
@williamdes (5)
-
@pmhausen (5)
-
@dharrigan (5)
-
@cbrueffer (4)
-
@kumy (4)
-
@bensmithurst (4)
-
@n-thumann (3)
-
@tangrs (3)
-
@tobiasdegen (3)
-
@noctarius (3)
-
@eljeffeg (3)
-
@Xeroxxx (3)
-
@stilez (3)
-
@noname12123 (3)
-
@oittaa (3)
-
@jdeluyck (3)
-
@0nnyx (3)
-
@tomcheung789 (3)
-
@EugenMayer (3)
-
@GMazzocato (3)
-
@g-a-c (3)
-
@skazi0 (3)
-
@reitermarkus (3)
-
@jakobsen-lrz (3)
-
@smopucilowski (3)
-
@haxorton (3)
-
@tbandixen (3)
-
@framer99 (3)
-
@computeralex92 (2)
-
@MaxOrelus (2)
-
@pksadiq (2)
-
@namezero111111 (2)
-
@xbb (2)
-
@planetf1 (2)
-
@oliverjueguen (2)
-
@ppmathis (2)
-
@Qhilm (2)
-
@Roy-Orbison (2)
-
@ServiusHack (2)
-
@thomasjsn (2)
-
@Tikimotel (2)
-
@trunet (2)
-
@brotherla (2)
-
@cs-1 (2)
-
@kuya1284 (2)
-
@mikahe (2)
-
@ndejong (2)
-
@ngreatorex (2)
-
@juliocbc (2)
-
@agoodkind (2)
-
@criadoperez (2)
-
@alexpro (2)
-
@AndyX90 (2)
-
@BPplays (2)
-
@terminar (2)
-
@fvanroie (2)
-
@chrko (2)
Recent Commits
-
Franco Fichtner (12 Jul 26)
firewall: invalidate rule stats cache for legacy rules page Since 5baba39831dff added the TTL but the page should fetch per inspect push this restores the old behaviour. We could move the controller to the legacy plugin so that it is not forgotten on final removal but that's not for now.
-
Franco Fichtner (12 Jul 26)
src: sweep
-
Monviech (11 Jul 26)
Firewall: Rules: Adapt getAdvancedIds() to the sectioned form structure introduced in 3d9cccfe (#10521)
-
Konstantinos Spartalis (11 Jul 26)
statistics: when interfaces disabled
-
Franco Fichtner (10 Jul 26)
interfaces: explicitly make explicit loopback network an actual loopback network PR: https://forum.opnsense.org/index.php?topic=52341.0
-
Ad Schellevis (10 Jul 26)
configd/templates - swap "strict" logic as it was reversed
-
Monviech (09 Jul 26)
Services: Kea DHCPv4/6: Switch custom DHCP option config generation to libdhcp_flex_option.so (#10514) * Services: Kea DHCPv4: emit custom DHCPv4 options via flex-option hook Route custom DHCPv4 option rows through libdhcp_flex_option instead of regular option-data. The custom option framework (KeaOptionDataField) already serializes values to final wire-format hex, but Kea's native option-data path still applies built-in option definitions and may reinterpret or drop payloads for standard or container options (e.g. 43 and 125). Use flex-option supersede expressions to inject the serialized bytes directly during response construction. Preserve the existing scoping model by translating subnet scope to an additional class, and reservation scope to either MAC address or client-id matching. Existing option match rules are kept as client-class membership checks inside the same expression. Built-in option_data fields remain unchanged and continue to use native Kea option-data generation. * Services: Kea DHCPv6: Add same flex option hook library support as in DHCPv4, with the limitation that it reservations need to be DUID based here.
-
Franco Fichtner (09 Jul 26)
firewall: revisit previous Well, apply needs to be pushed to render interfaces. Make sure that we render before reloading filter which actually calls ifgroup_setup() to rename groups.
-
Franco Fichtner (09 Jul 26)
Revert "firewall: properly render groups on apply" This reverts commit 6183fbe205f7df44fd249c8c19b554b871e4698a.
-
Franco Fichtner (09 Jul 26)
firewall: adjust alias rename according to address_to_pconfig(); closes #10024 Looking at stable/25.7 where all three components where still in the tree they all use the function which could potentially write 'address'. It's better than not having those and strive for consistency although in practice this will die with the removal of legacy rules support.
-
Franco Fichtner (09 Jul 26)
firewall: fix one-to-one part of #10024
-
Franco Fichtner (09 Jul 26)
firewall: properly render groups on apply
-
Stephan de Wit (09 Jul 26)
dashboard: include interfaces widget in dashboard default. Closes https://github.com/opnsense/core/issues/10456 This is the only one that makes sense from a functional perspective. While here, adjust the resize/style logic a bit such that updates are also propagated on first load, which makes sure the interfaces table renders the correct amount of columns to prevent wasted space.
-
Franco Fichtner (09 Jul 26)
firewall: avoid emitting reply-to on block rules as well (#10513) Remove reply-to the same way that 20070de did it for route-to.
-
Monviech (09 Jul 26)
git: create AGENTS.md with agent guidelines (#10507) Added guidelines for coding agents working on the OPNsense core repository, including mission, core principles, architecture, code style, security expectations, and review checklist.
-
Franco Fichtner (09 Jul 26)
github: add AI disclosure to issue templates As the growing conclusions on bug reports look to be AI suggestions that can make oblivious claims according to how the user steeres the scope to the core repo it's better to (try to) make this visible.
-
Franco Fichtner (08 Jul 26)
firmware: cleansing using output_cmd is futile Move the code back to where it was in early 26.1. A number of regressions could have been avoided. The last straw was buffering of "." characters for fetching. The read-guard is still effective. As it reads the file it does not need to run unbuffered. GUI reads are still properly filtered.
-
Ad Schellevis (08 Jul 26)
Firewall: NAT: Source NAT - constraint getAction to only general page and align setAction to do the same, closes https://github.com/opnsense/core/issues/10502
-
Stephan de Wit (08 Jul 26)
captive portal: adjust accounting interval to Acct-Interim-Interval (#10474) This changes the default interval to 600, which is the recommended value according to RFC 2869.
-
Franco Fichtner (08 Jul 26)
monit: fix mail-format and poll-time validation; closes #10498
-
Franco Fichtner (07 Jul 26)
contrib: Non-canonical cast (boolean) is deprecated, use the (bool) cast instead
-
Franco Fichtner (07 Jul 26)
src: two whitespace changes
-
Franco Fichtner (07 Jul 26)
wizard: annotate that gateways are cleared to prevent lingering misconfiguration #8976 The old code tried to update always based on the WAN_GW name, but there could be associated side effects, see old code for comparison: https://github.com/opnsense/core/blob/stable/25.1/src/wizard/system.xml#L603-L627
-
Franco Fichtner (07 Jul 26)
firmware: allow upgrade to 26.7-RC1
-
Ad Schellevis (07 Jul 26)
Services: Unbound DNS: Overrides - missing NetMaskAllowed=N on override address, closes https://github.com/opnsense/core/issues/10499
-
Ad Schellevis (06 Jul 26)
mvc: add file type to forms, including required javascript initialisation code. File type input serializes offered payload in base64 and returns both the field and the filename of the offered file. This easy to use wrapper can be used to upload files of reasonable size (a couple of megabytes max) via either a select file or drag and drop option. Collected output exists of the offered <id> combined with a field named <id>__name which contains the offered filename
-
Franco Fichtner (06 Jul 26)
firewall: fix reference when plugin not installed #9947 Just hint at the migration assistant. :)
-
Franco Fichtner (06 Jul 26)
ui: fix menu registration not setting "active" It's a bit complicated: we need to ignore all invisible pages. The menu registration isn't really a value that does something but it successfully hides the registration from the menu code rendering the active flag.
-
Franco Fichtner (06 Jul 26)
system: change comment to existing page
-
Monviech (06 Jul 26)
Firewall: Group: change link to new firewall rules (#10497)
OPNSense Security
Security Advisories (20)
- high Patched CVSS 7.1
GHSA-p9pr-782r-w2xw Direct comma-separated user privileges bypass OPNsense MVC read-only write protection
- high Patched CVSS 8.1
GHSA-2v2x-m4j7-76pv Log Forgery via Login Username CRLF in WebGUI Authentication → Pf Table IP Blocking
- medium Patched CVSS 5.2
CVE-2026-58394 Stored XSS in Administration Settings via Certificate Description
- medium Patched CVSS 4.3
CVE-2026-58395 XPath injection in MVC safe-delete
- medium Patched CVSS 5.4
CVE-2026-58392 Stored XSS in Services: NTP GPS
- medium Patched CVSS 5.4
CVE-2026-58391 Stored XSS in Firewall Rules/NAT pages via a HTML-attribute breakout
- critical Patched CVSS 9.9
CVE-2026-57155 Root RCE via Arbitrary File Write in GeoIP Alias Importer
- high Patched CVSS 8
CVE-2026-58390 Stored XSS to root RCE via OpenVPN client common_name in status views
- high Patched CVSS 8.1
GHSA-m4m3-v627-wgc2 Stored Cross-Site Scripting (XSS) via TrafficShaper description in legacy PHP firewall rules page
- medium Patched CVSS 5.9
CVE-2026-58393 OpenVPN Client Specific Override common_name allows path traversal in generated CSO files
- high Patched CVSS 8.1
GHSA-33q4-wcv7-r8fr Trust certificate and CA refids allow path traversal during IPsec file generation
- high Patched CVSS 8.1
CVE-2026-57154 Configuration line injection via multiple GUI text fields
- high Patched CVSS 7.1
CVE-2026-53582 XPATH Injection can disclose any secret in config.xml
- critical Patched CVSS 9
CVE-2026-53581 ntp: write path traversal
- critical Patched CVSS 9.1
CVE-2026-44194 RCE on user managment
- critical Patched
CVE-2026-45158 Command Injection via Attacker-Controlled DHCP Config
- critical Patched CVSS 9.1
CVE-2026-44193 RCE via XMLRPC endpoint using `opnsense.restore_config_section` method
- medium Patched CVSS 5.3
CVE-2026-44195 Authentication lockout bypass
- high Patched CVSS 8.2
CVE-2026-34578 LDAP Injection via Unsanitized Username in Authentication
- medium Patched CVSS 6.3
CVE-2026-30868 Cross-Site Request Forgery (CSRF) in opnsense/core
OPNSense Website
Website
OPNsense® is an open source, feature rich firewall and routing platform, offering cutting-edge network protection. - OPNsense
We’ve made digital security accessible to everyone. With our free OPNsense® platform, you get all the features of expensive commercial firewalls and more. Enjoy open and verifiable sources in a product developed with and for a large user community.
Redirects
Does not redirect
Security Checks
All 65 security checks passed
Server Details
- IP Address 89.149.225.137
- Location Amsterdam, Noord-Holland, Netherlands (Kingdom of the), EU
- ISP Leaseweb Netherlands B.V.
- ASN AS60781
Associated Countries
-
US -
NL
Safety Score
Website marked as safe
100%
Blacklist Check
opnsense.org was found on 0 blacklists
- AntiSocial Blacklist
- Artists Against 419
- Badbitcoin
- Bambenek Consulting
- CERT Polska
- CoinBlockerLists
- CRDF
- CryptoScamDB
- EtherAddressLookup
- EtherScamDB
- Fake Website Buster
- MetaMask EthPhishing
- NABP Not Recommended Sites
- OpenPhish
- PetScams
- PhishFeed
- PhishFort
- Phishing.Database
- PhishStats
- PhishTank
- Phishunt
- RPiList Not Serious
- Scam.Directory
- SecureReload Phishing List
- Spam404
- StopGunScams
- Suspicious Hosting IP
- ThreatFox
- ThreatLog
- TweetFeed
- URLhaus
- ViriBack C2 Tracker
Website Preview
OPNSense Reviews
More Firewalls
-
AFWall+
(Android - Rooted)
xdaforums.com/t/5-0-root-3-6-0-afwall-iptables-firewall-28-aug-2023.1957231Android Firewall+ (AFWall+) is an advanced iptables editor (GUI) for rooted Android devices, which provides very fine-grained control over which Android apps are allowed to access the network.
-
BunkerWeb is an open-source Next-Generation Web Application Firewall (WAF). It provides easy protection for your web services and is designed to remain secure by default. It integrates seamlessly with modern environments (Docker, Kubernetes, Linux, etc.).
-
Open source GUI firewall for Linux, allowing you to block internet access for certain applications. Supports both simple and advanced mode, GUI and CLI options, very easy to use, lightweight/ low-overhead, under active maintenance and backed by a strong community.
-
IPFire is a hardened, versatile, state-of-the-art Open Source firewall based on Linux. Easy to install on a raspberry Pi, since it is lightweight and heavily customizable.
-
A very polished application firewall, allowing you to easily manage internet connections on a per-app basis. (Mac OS)
Not Open Source -
Firewall app for iPhone, allowing you to block any connection to any domain.
Not Open Source -
Free, open source macOS firewall. It aims to block unknown outgoing connections, unless explicitly approved by the user.
-
Provides simple and advanced ways to block access to the internet. Applications and addresses can individually be allowed or denied access to Wi-Fi and/or mobile connection.
-
Makes internet connections from all apps visible, allowing you to block or manage traffic on a per-app basis. GNU/Linux port of the Little Snitch application firewall.
-
An open-source ad-blocker and firewall app for Android 6+ (does not require root).
-
An open source firewall tool for Linux that builds upon the Netfilter system built into the Linux kernel, making it easier to manage more complex configuration schemes with iptables.
-
Tool to control Windows Filtering Platform (WFP), in order to configure detailed network activity on your PC. (Windows)
-
The ufw (Uncomplicated Firewall) is a GUI application and CLI, that allows you to configure a firewall using
iptablesmuch more easily.
About the Data: OPNSense
Change History
API
You can access OPNSense's data programmatically via our API. Simply make a GET request to:
https://api.awesome-privacy.xyz/v1/services/opnsense The REST API is free, no-auth and CORS-enabled. To learn more, view the API Docs or read the API Usage Guide.
Share OPNSense
Help your friends compare Firewalls, and pick
privacy-respecting software and services.
Share OPNSense and Awesome Privacy with your network!