OPNSense

opnsense.org
OPNSense

Enterprise firewall and router for protecting networks, built on the FreeBSD system.

Open Source

OPNSense Source Code

Author

opnsense

Description

OPNsense GUI, API and systems backend

#api#bsd#captive-portal#firewall#gui#hacktoberfest#ips#proxy#routing#shaping#vpn

Homepage

https://opnsense.org/

Repository

  • LicenseBSD-2-Clause
  • Created13 Dec 14
  • Primary languagePHP
  • Size102,704 KB
  • Stars4,664
  • Forks988
  • Watchers4,664

Language Usage

Language Usage

Project Health

  • Last commit5 days ago
  • Open issues300
  • Latest release27.1.a

Recent Commits

  • Franco Fichtner(03 Sept 26)

    Revert "interfaces: anchor accept_rtadv in interface_dhcpv6_configure() #10828" This partially reverts commit 8d939116c4e892116ab9717be8d61c1136506857.

  • Franco Fichtner(03 Sept 26)

    interfaces: anchor accept_rtadv in interface_dhcpv6_configure() #10828 This avoids duplication and always executes it at the right point in time when the DHCPv6 client mode is activated. Suggested by: @laozhoubuluo

  • Franco Fichtner(03 Sept 26)

    interfaces: ppp-ipv6.php may be executed before later stages of interface_configure() #10828

  • Stephan de Wit(03 Sept 26)

    ui: prevent modal dragging from search bar

  • Franco Fichtner(03 Sept 26)

    interfaces: reverse the queue build order to fix the last regression #10810 interfaces_configure() would re-classify VLAN as "software" after making in pluggable, but the actual intention of the queues build was that trackers, bridges and dhcp6c interfaces were started up last. This wasn't given in the loop since the more specific checks were at the end instead of at the front. It also reduces the complexity in the processing.

  • Franco Fichtner(03 Sept 26)

    interfaces: require queue build strategy Does not fix the VLAN ordering issue yet.

  • Stephan de Wit(03 Sept 26)

    bootgrid: ensure a minimum amount of rows to render This is a continuation of https://github.com/opnsense/core/pull/10408

  • Konstantinos Spartalis(03 Sept 26)

    ux: fix widget bottom gap (#10837)

  • Stephan de Wit(03 Sept 26)

    ui: implement dialog search field (#10825) Co-authored-by: Ad Schellevis <[email protected]>

  • Franco Fichtner(03 Sept 26)

    interfaces: a few config_read_array() replacements

  • Franco Fichtner(03 Sept 26)

    interfaces: bring back passing plugins_devices() from interfaces_configure()

  • Franco Fichtner(03 Sept 26)

    firmware: adjust the incompatible pkg test "FreeBSD" is now "FreeBSD-ports" and since we know we want "OPNsense" we can make pin it this way much better. One downside is the "unknown-repository" when installing from ports but it's easy enough to circumvent this check for testing.

  • Franco Fichtner(02 Sept 26)

    system: fush volt template cache in shared action

  • Stephan de Wit(02 Sept 26)

    ui: attach selectors piped through replaceInputWithSelector to body This prevents dropdowns from overflowing inside a modal

  • Konstantinos Spartalis(02 Sept 26)

    acl: add missing and fix some issues

  • Bjoern Jakobsen(02 Sept 26)

    System: High Availability: Settings - Add pfsync version 1500, implements #10829 Signed-off-by: Bjoern Jakobsen <[email protected]>

  • Franco Fichtner(01 Sept 26)

    src: style sweep

  • Franco Fichtner(01 Sept 26)

    firewall: bogons private net exclusion moves to bogons.txz preprocessing; closes #9048 The set is now modified to split out the private ranges from the larger bogons block so we can remove this exclusion from the alias to "make inversion better again". ;)

  • Greelan(01 Sept 26)

    Services: Dnsmasq DNS & DHCP: include expire and lease type in leases search fields (#10824)

  • Greelan(01 Sept 26)

    Services: Kea DHCPv4/6: fix leases sorting (#10823)

  • Monviech(01 Sept 26)

    Firewall: Rules: Add match keyword and normalization options (#10812) Firewall: Rules: Add match action and normalization options Add `match` as a regular MVC firewall rule action and support `scrub (...)` options on both `pass` and `match` rules. Switch global normalization to modern PF syntax by emitting `set reassembly` and generating random-ID and interface MSS handling as match rules. Legacy scrub rules and configuration paths remain unchanged, with no migration or compatibility handling introduced. Normalize unsupported combinations when changing away from `pass` via js handler. Add `match` support to the firewall live log and widget, expose the normalization controls in the rule dialog as advanced options, and include the related UI and formatter adjustments.

  • Stephan de Wit(01 Sept 26)

    ipsec: add some hybrid post-quantum variants as additional key exchanges (#10798)

  • Franco Fichtner(31 Aug 26)

    system: minor touches on widget styles

  • Konstantinos Spartalis(31 Aug 26)

    widget: Services: more structured layout (#10817) * widget: Services: structured layout * Update Services.js

  • Ad Schellevis(30 Aug 26)

    system: audit log injection via login username in auth_log() * prevent syslog.filter splitting our messages * remove newlines when flushing out local files PR: GHSA-jjm2-jg4p-3v9q

  • Greelan(31 Aug 26)

    dnsmasq: leases sorting fixes (#10790) * dnsmasq: leases sorting fixes * Refactor to use sortable fields

  • Franco Fichtner(31 Aug 26)

    system: also consider VTI tunnels for lower priority #10819

  • Franco Fichtner(31 Aug 26)

    interface: replace strstr()/strpos() with more precise str_starts_with() This works for everything but VLANS which still need to check for an inlie _vlan for backwards compatibility.

  • Franco Fichtner(31 Aug 26)

    interfaces: /dev paths no longer taint devices

  • Franco Fichtner(29 Aug 26)

    system: give WireGuard the same tunnel priority treatment #10819 In the defaults it may be preferred by default route checking. For the default route we do not check if these are to be considered upstream.

OPNSense Security

4.8/10

Repo Security Summary

Updated 24 Aug 26

  • PackagingN/A
  • Code-Review2/10
  • Security-Policy10/10
  • Maintained10/10
  • Token-PermissionsN/A
  • Dangerous-WorkflowN/A
  • CII-Best-Practices0/10
  • Binary-Artifacts10/10
  • License10/10
  • Signed-ReleasesN/A
  • Pinned-DependenciesN/A
  • Branch-Protection0/10
  • Fuzzing0/10
  • SAST0/10

Security Advisories (29)

  • lowUnpatched

    GHSA-9h93-hhcx-957cMultiple cross-site scripting (XSS) in OPNsense 26.7.1_1 Architecture amd64 08d6a7847

  • mediumPatchedCVSS 5.4

    GHSA-864r-q4j5-5mjqCaptive Portal roaming authorizes attacker-controlled IPs through forged ARP bindings

  • mediumPatchedCVSS 4.8

    GHSA-6vv6-fpw9-8r2gCertificate and CA descriptions render unescaped in the wireless EAP selectors on interfaces.php

  • mediumPatchedCVSS 6.5

    GHSA-fqmm-g6xw-qhm4OpenVPN session kill endpoint executes arbitrary management protocol commands through unvalidated `session_id` (delegated status user to daemon control)

  • mediumPatchedCVSS 5.2

    GHSA-75fw-j788-j4hjStored XSS via Unsafe Attribute Construction and `info` Field HTML Insertion

  • mediumPatchedCVSS 5.3

    GHSA-h4qj-j2x9-q553Unauthenticated lighttpd request-body disk exhaustion

  • highPatchedCVSS 7.6

    GHSA-vw8q-pqq7-2q7vManual Config::save() paths bypass user-config-readonly enforcement

  • mediumPatchedCVSS 5.9

    GHSA-rw63-4hw9-p4v7OpenVPN Client Export Utility users can export private keys for unlisted certificate refs

  • mediumPatchedCVSS 6.3

    GHSA-jm2f-ch62-rpxrMultiple Stored XSS

  • highPatchedCVSS 7.1

    CVE-2026-71490Direct comma-separated user privileges bypass OPNsense MVC read-only write protection

  • highPatchedCVSS 8.1

    CVE-2026-63442Log Forgery via Login Username CRLF in WebGUI Authentication → Pf Table IP Blocking

  • mediumPatchedCVSS 5.2

    CVE-2026-58394Stored XSS in Administration Settings via Certificate Description

  • mediumPatchedCVSS 4.3

    CVE-2026-58395XPath injection in MVC safe-delete

  • mediumPatchedCVSS 5.4

    CVE-2026-58392Stored XSS in Services: NTP GPS

  • mediumPatchedCVSS 5.4

    CVE-2026-58391Stored XSS in Firewall Rules/NAT pages via a HTML-attribute breakout

  • criticalPatchedCVSS 9.9

    CVE-2026-57155Root RCE via Arbitrary File Write in GeoIP Alias Importer

  • highPatchedCVSS 8

    CVE-2026-58390Stored XSS to root RCE via OpenVPN client common_name in status views

  • highPatchedCVSS 8.1

    GHSA-m4m3-v627-wgc2 Stored Cross-Site Scripting (XSS) via TrafficShaper description in legacy PHP firewall rules page

  • mediumPatchedCVSS 5.9

    CVE-2026-58393OpenVPN Client Specific Override common_name allows path traversal in generated CSO files

  • highPatchedCVSS 8.1

    GHSA-33q4-wcv7-r8frTrust certificate and CA refids allow path traversal during IPsec file generation

  • highPatchedCVSS 8.1

    CVE-2026-57154Configuration line injection via multiple GUI text fields

  • highPatchedCVSS 7.1

    CVE-2026-53582XPATH Injection can disclose any secret in config.xml

  • criticalPatchedCVSS 9

    CVE-2026-53581ntp: write path traversal

  • criticalPatchedCVSS 9.1

    CVE-2026-44194RCE on user managment

  • criticalPatched

    CVE-2026-45158Command Injection via Attacker-Controlled DHCP Config

  • criticalPatchedCVSS 9.1

    CVE-2026-44193RCE via XMLRPC endpoint using `opnsense.restore_config_section` method

  • mediumPatchedCVSS 5.3

    CVE-2026-44195Authentication lockout bypass

  • highPatchedCVSS 8.2

    CVE-2026-34578LDAP Injection via Unsanitized Username in Authentication

  • mediumPatchedCVSS 6.3

    CVE-2026-30868Cross-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 Address89.149.225.137
  • LocationAmsterdam,Noord-Holland,Netherlands (Kingdom of the),EU
  • ISPLeaseweb Netherlands B.V.
  • ASNAS60781

Associated Countries

  • USUS
  • NLNL

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

Website preview

OPNSense Reviews

More Firewalls

About the Data: OPNSense

Change History

  • Amended (github) by @lissy93 #608
  • Renamed previously: OpenSense from Networking › Firewalls by @HammyHavoc #202

Edit OPNSense Data

You can edit OPNSense's entry in this section of awesome-privacy.yml by submitting a PR to our GitHub repo.
Note that some of the information shown above has been aggregated from external sources, a list of these can be found data documentation.

Origin Data

Modify Data

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!