
A web version of the bash scripts wrote for Check Point CVE-2026-50751 and CVE-2026-50752. This uses a local server to scan and make changes using Check Point Web API
An approval-based local webapp for scanning configuration markers associated with Check Point CVE-2026-50751, CVE-2026-50752, CVE-2026-85102, and CVE-2026-85103 and applying selected mitigations through Check Point Management API commands.
This tool is not created or supported by Check Point and should be used at your own risk. Mitigation is temporary. Check Point recommends patching quickly using the patches provided for each CVE in the Check Point Security Advisories.
The app runs locally, scans relevant VPN configuration, shows where mitigation may be needed, lets an operator approve changes, and can publish the management session. Policy still needs to be installed after publishing for changes to take effect on gateways. Configuration findings do not establish whether a gateway is patched or exploitable.
Login supports username/password or API key authentication. Scan results use the SMS management object name or the returned Smart-1 Cloud/MDS domain name when available. Approved changes use the corresponding domain session.
Scans the SMS global Remote Access VPN property:
remote-access.vpn-authentication-and-encryption.encryption-method
If the current value is not ike_v2_only, the app can approve and apply a change to set the property to:
ike_v2_only
This scan is intended to identify exposure where deprecated IKEv1 key exchange is still globally allowed for VPN Remote Access and Mobile Access. IKEv1 is deprecated and no longer industry best practice. This change can affect older VPN clients. Review SK166415 for additional Check Point guidance.
Scans simple gateways and checks each gateway generic object for the VPN realm inside:
realmsForBlades
The app reports whether legacy clients are supported or disabled. When mitigation is approved, it sets the VPN realm owned-object disabled value to true.
User-facing result text:
Legacy clients are disabledLegacy Clients are SupportedAllowing legacy clients can preserve support for IKEv1, which is no longer an industry best practice. We recommend disabling this setting unless legacy clients are still required. If legacy clients are needed, plan to migrate them to a more secure modern VPN client.
This check looks for personal certificate authentication as a configuration marker for the certificate-validation issue described in the app: improper validation of certificate data during VPN negotiation may allow an unauthenticated remote attacker to execute arbitrary code on the gateway.
For each simple gateway returned in the scanned management domain, the app requests full details using show-simple-gateway. The equivalent CLI inspection is:
mgmt_cli -r true show simple-gateway name "YOUR_GATEWAY_NAME" details-level full --format json
It inspects vpn-settings.authentication.authentication-clients, including each client's nested authentication-methods array, for:
{
"name": "Personal_Certificate",
"display-name": "Personal Certificate",
"authentication-methods": [
{ "authentication-factor": "personal-certificate" }
]
}
Detection uses the authentication factor, not a hard-coded client name. The evidence table displays the gateway, domain, UID, current state, matching client display names, and status. Missing or incomplete details show as Unknown; API failures show as Scan error. Neither is treated as a clean result. This check currently enumerates simple gateways, not cluster objects.
Select the checkbox for each gateway to update, then click Remove User Certificate. The app rechecks the selected gateways and removes the detected personal-certificate login options by their actual object names. For a client named Personal_Certificate, the equivalent command is:
mgmt_cli -r true set simple-gateway name "YOUR_GATEWAY_NAME" vpn-settings.authentication.authentication-clients.remove "Personal_Certificate"
Other authentication-client entries remain in place. Removing a login option removes that entire option, including any additional methods it contains; it does not delete certificate objects. Clients relying on the removed option need another authentication method after policy installation.
Publish after successful apply is checked by default. The app reports individual gateway successes and failures and refreshes the scan afterward. If any gateway update fails, this action does not automatically publish the successful changes; review them before publishing manually. Publishing errors are reported separately. Install policy after publishing.
Scans both Check Point site-to-site VPN community types:
The app flags a VPN community only when all of these are observed:
For Star communities, the app displays center gateways and satellite gateways separately. Gateway names are tagged as locally managed or externally managed when the API data provides enough object type information.
For Mesh communities, the app pulls gateway names from the community gateways list. Mesh communities do not include externally managed gateway handling in this tool, so that field is shown as not applicable.
When mitigation is approved, the app attempts to set the VPN community encryption method to IKEv2 only. Star communities use:
set-vpn-community-star
Mesh communities use:
set-vpn-community-meshed
If a selected Star community includes externally managed gateways, the app warns before applying the change. You must make sure the matching IKEv2-only change is also made on the externally managed gateway side.
Reads firewall.accept-control-connections from show-global-properties with details-level: full. The table shows Enabled, Disabled, Unknown, or Scan error, with management/domain labels and API evidence.
This is a read-only check. Replace implied rules with explicit Access Control rules only in high security environments, following SK179346. Incorrect rules can break policy installation and management/log connectivity. A disabled setting alone does not verify that the required explicit rules exist.
A live status bar appears at the bottom while operations run. After login, it polls the backend for the latest API command, domain, and number of commands started, and shows elapsed time. The activity indicator is not a percentage-complete estimate.
http://...; that would send the Check Point API login over cleartext HTTP.http://127.0.0.1:3000.The backend proxies these Check Point Management API commands:
loginlogoutpublishshow-sessionshow-domainsshow-gateways-and-serversshow-simple-gatewaysshow-simple-gatewayset-simple-gatewayshow-generic-objectset-generic-objectshow-global-propertiesset-global-propertiesshow-vpn-communities-starshow-vpn-communities-meshedset-vpn-community-starset-vpn-community-meshedThis project has no third-party npm dependencies. It only requires Node.js 18 or newer when running from source.
Install Node.js 18 or newer from nodejs.org or Homebrew.
brew install node
Download or clone this project.
git clone <repo-url>
cd CVE-Web-Check
Start the local app.
npm start
Because there are no npm dependencies, this also works:
node server.js
Open the app.
http://127.0.0.1:3000
Install Node.js 18 or newer from nodejs.org.
Download and extract the project ZIP, or clone the repository with Git for Windows.
git clone <repo-url>
cd CVE-Web-Check
Start the local app.
npm start
Because there are no npm dependencies, this also works:
node server.js
Open the app in a browser.
http://127.0.0.1:3000
By default the app listens on 127.0.0.1:3000. To use another port:
macOS:
PORT=3100 npm start
Windows PowerShell:
$env:PORT = "3100"
npm start
Then open:
http://127.0.0.1:3100
Open the running app at http://127.0.0.1:3000, not by opening public/index.html as a local file. The API calls and live status bar require the Node backend. After a backend restart, log in again and run a fresh scan.
The server prints request diagnostics to the terminal. A successful login attempt will show lines similar to:
Local API request requestId=abc12345 route=/api/login
Login request received target=https://mgmt.example.com/web_api/login user=admin
Check Point API request starting command=login target=https://mgmt.example.com/web_api/login
If the browser shows a login error with a request ID but packet capture shows no outbound attempt to the management server, compare the terminal target= value with your packet capture filter.
If there is no Local API request line at all, the browser is not reaching the local backend. Confirm the app is running and that you opened the correct local URL.