{"schemaVersion":3,"id":"CVE-2026-97730","aliases":[],"status":"published","duplicateOf":null,"title":null,"description":"In Netgate pfSense Plus before 26.07 and pfSense CE before 2.9.0, a Local File Inclusion (LFI) vulnerability in the Dashboard (index.php) widget sequence data handling allows an authenticated attacker to execute arbitrary PHP code. To exploit this, an attacker with privileges to modify Dashboard settings and write arbitrary files to the pfSense firewall system (e.g., /tmp/test.widget.php) can submit a crafted widget sequence value containing a path traversal payload (e.g., ../../../../../../../../../../../tmp/test). The Dashboard will subsequently read and execute the arbitrary PHP file as if it were a standard widget.","dates":{"published":"2026-09-25T02:43:13.541Z","modified":"2026-09-26T22:51:19.403Z","reserved":null,"kevAdded":[],"kevDue":[]},"cvss":{"headline":{"score":8.5,"severity":"high","version":"3.1","versionLabel":"v3.1","source":"CVE.org","vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:H","computed":false,"selection":"backend-summary"},"metrics":[{"version":"3.1","versionLabel":"v3.1","source":"CVE.org","score":8.5,"severity":"high","vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:H","exploitability":null,"impact":null,"computed":false},{"version":"3.1","versionLabel":"v3.1","source":"NVD","score":8.5,"severity":"high","vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:H","exploitability":null,"impact":null,"computed":false}]},"epss":{"probability":0.01025,"percentile":0.63219,"severity":"low","asOf":"2026-10-21T00:00:00.000Z","change":{"pp":null,"baselineDate":null,"baselineScore":null},"history":[{"date":"2026-09-25T00:00:00.000Z","score":0.01025,"percentile":null},{"date":"2026-09-26T00:00:00.000Z","score":0.01025,"percentile":null},{"date":"2026-09-27T00:00:00.000Z","score":0.01025,"percentile":null},{"date":"2026-09-28T00:00:00.000Z","score":0.01025,"percentile":null},{"date":"2026-09-29T00:00:00.000Z","score":0.01025,"percentile":null},{"date":"2026-09-30T00:00:00.000Z","score":0.01025,"percentile":null},{"date":"2026-10-01T00:00:00.000Z","score":0.01025,"percentile":null},{"date":"2026-10-02T00:00:00.000Z","score":0.01025,"percentile":null},{"date":"2026-10-03T00:00:00.000Z","score":0.01025,"percentile":null},{"date":"2026-10-04T00:00:00.000Z","score":0.01025,"percentile":null},{"date":"2026-10-05T00:00:00.000Z","score":0.01025,"percentile":null},{"date":"2026-10-06T00:00:00.000Z","score":0.01025,"percentile":null},{"date":"2026-10-07T00:00:00.000Z","score":0.01025,"percentile":null},{"date":"2026-10-08T00:00:00.000Z","score":0.01025,"percentile":null},{"date":"2026-10-09T00:00:00.000Z","score":0.01025,"percentile":null},{"date":"2026-10-10T00:00:00.000Z","score":0.01025,"percentile":null},{"date":"2026-10-11T00:00:00.000Z","score":0.01025,"percentile":null},{"date":"2026-10-12T00:00:00.000Z","score":0.01025,"percentile":null},{"date":"2026-10-13T00:00:00.000Z","score":0.01025,"percentile":null},{"date":"2026-10-14T00:00:00.000Z","score":0.01025,"percentile":null},{"date":"2026-10-15T00:00:00.000Z","score":0.01025,"percentile":null},{"date":"2026-10-16T00:00:00.000Z","score":0.01025,"percentile":null},{"date":"2026-10-17T00:00:00.000Z","score":0.01025,"percentile":null},{"date":"2026-10-18T00:00:00.000Z","score":0.01025,"percentile":null},{"date":"2026-10-19T00:00:00.000Z","score":0.01025,"percentile":null},{"date":"2026-10-20T00:00:00.000Z","score":0.01025,"percentile":null},{"date":"2026-10-21T00:00:00.000Z","score":0.01025,"percentile":0.63219}],"last30":[{"date":"2026-09-25T00:00:00.000Z","score":0.01025,"percentile":null},{"date":"2026-09-26T00:00:00.000Z","score":0.01025,"percentile":null},{"date":"2026-09-27T00:00:00.000Z","score":0.01025,"percentile":null},{"date":"2026-09-28T00:00:00.000Z","score":0.01025,"percentile":null},{"date":"2026-09-29T00:00:00.000Z","score":0.01025,"percentile":null},{"date":"2026-09-30T00:00:00.000Z","score":0.01025,"percentile":null},{"date":"2026-10-01T00:00:00.000Z","score":0.01025,"percentile":null},{"date":"2026-10-02T00:00:00.000Z","score":0.01025,"percentile":null},{"date":"2026-10-03T00:00:00.000Z","score":0.01025,"percentile":null},{"date":"2026-10-04T00:00:00.000Z","score":0.01025,"percentile":null},{"date":"2026-10-05T00:00:00.000Z","score":0.01025,"percentile":null},{"date":"2026-10-06T00:00:00.000Z","score":0.01025,"percentile":null},{"date":"2026-10-07T00:00:00.000Z","score":0.01025,"percentile":null},{"date":"2026-10-08T00:00:00.000Z","score":0.01025,"percentile":null},{"date":"2026-10-09T00:00:00.000Z","score":0.01025,"percentile":null},{"date":"2026-10-10T00:00:00.000Z","score":0.01025,"percentile":null},{"date":"2026-10-11T00:00:00.000Z","score":0.01025,"percentile":null},{"date":"2026-10-12T00:00:00.000Z","score":0.01025,"percentile":null},{"date":"2026-10-13T00:00:00.000Z","score":0.01025,"percentile":null},{"date":"2026-10-14T00:00:00.000Z","score":0.01025,"percentile":null},{"date":"2026-10-15T00:00:00.000Z","score":0.01025,"percentile":null},{"date":"2026-10-16T00:00:00.000Z","score":0.01025,"percentile":null},{"date":"2026-10-17T00:00:00.000Z","score":0.01025,"percentile":null},{"date":"2026-10-18T00:00:00.000Z","score":0.01025,"percentile":null},{"date":"2026-10-19T00:00:00.000Z","score":0.01025,"percentile":null},{"date":"2026-10-20T00:00:00.000Z","score":0.01025,"percentile":null},{"date":"2026-10-21T00:00:00.000Z","score":0.01025,"percentile":0.63219}]},"kev":{"state":"not-listed","entries":[],"listedCount":0,"totalCatalogs":3,"catalogs":[{"source":"cisa","label":"CISA","listed":false,"entry":null},{"source":"enisa","label":"ENISA","listed":false,"entry":null},{"source":"circl","label":"CIRCL","listed":false,"entry":null}]},"ransomware":{"state":"none-recorded","sources":[]},"exploits":[],"exploitCount":0,"weaknesses":[{"id":"CWE-24","name":"Path Traversal: '../filedir'","description":"The product uses external input to construct a pathname that should be within a restricted directory, but it does not properly neutralize \"../\" sequences that can resolve to a location that is outside of that directory.","type":"weakness","status":"Incomplete","abstraction":"Variant","likelihoodOfExploit":null,"url":"https://cwe.mitre.org/data/definitions/24.html"}],"affected":[{"vendor":"netgate","product":"pfsense ce","name":"pfSense CE","label":"pfsense ce","ecosystem":null,"cpePart":"a","purl":null,"purlType":null,"versions":[{"text":"< 2.9.0","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 2.9.0","eol":null,"hubHref":"/vendor/netgate/pfsense_ce"},{"vendor":"netgate","product":"pfsense_plus","name":"pfsense plus","label":"pfsense_plus","ecosystem":null,"cpePart":"a","purl":null,"purlType":null,"versions":[{"text":"< 26.07","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 26.07","eol":null,"hubHref":"/vendor/netgate/pfsense_plus"}],"affectedCount":2,"eol":{"hasEol":false,"count":0},"references":[{"url":"https://redmine.pfsense.org/issues/16947","label":"redmine.pfsense.org/issues/16947","hostname":"redmine.pfsense.org","tags":["Issue Tracking","Technical Description"]},{"url":"https://docs.netgate.com/downloads/pfSense-SA-26_18.webgui.asc","label":"docs.netgate.com/downloads/pfSense-SA-26_18.webgui.asc","hostname":"docs.netgate.com","tags":["Vendor Advisory"]},{"url":"https://redmine.pfsense.org/attachments/7146","label":"redmine.pfsense.org/attachments/7146","hostname":"redmine.pfsense.org","tags":["Patch"]},{"url":"https://docs.netgate.com/pfsense/en/latest/install/upgrade-guide.html","label":"docs.netgate.com/pfsense/en/latest/install/upgrade-guide.html","hostname":"docs.netgate.com","tags":["Mitigation"]}],"lineage":{"upstream":[],"downstream":[],"duplicates":[],"related":[]},"timeline":[{"kind":"published","date":"2026-09-25T02:43:13.541Z","label":"Published","detail":"Vulnerability first disclosed.","source":null},{"kind":"modified","date":"2026-09-26T22:51:19.403Z","label":"Last modified","detail":"Vulnerability information updated.","source":null}],"risk":{"score":34,"level":"medium","profile":"Default","thresholds":{"critical":75,"high":50,"medium":25,"low":10}},"meta":{"dataAsOf":"2026-10-21T14:31:24.599Z","stale":false,"partial":false}}