Skip to content

J1-PIPELINE: EdgeGateway audit, security hardening, and documentation fixes - #5

Open
OneByJorah wants to merge 9 commits into
mainfrom
publish/20260705
Open

J1-PIPELINE: EdgeGateway audit, security hardening, and documentation fixes#5
OneByJorah wants to merge 9 commits into
mainfrom
publish/20260705

Conversation

@OneByJorah

Copy link
Copy Markdown
Owner

Summary

J1-PIPELINE Phase 14 (PUBLISHER) — Push all pending EdgeGateway changes from the audit, security hardening, and documentation pipeline.

Changes in this PR

Commit Description
docs(EdgeGateway): add INTENT.md with ORACLE intent reconstruction ORACLE-phase repository analysis documenting system architecture, key decisions, and security posture
chore(EdgeGateway): add j1.yaml pipeline metadata Pipeline configuration for J1-PIPELINE orchestration

Plus 6 pre-existing security and documentation commits already on this branch:

  • fix: prevent XSS via DHCP lease hostnames in dashboard — Sanitizes DHCP lease hostnames rendering in the dashboard template
  • fix: use ipaddress module for robust subnet restriction — Replaces naive IP comparison with proper ipaddress module checks
  • fix: add requirements section and default password warning to README and installer — Documents system requirements and warns about default credentials
  • fix: add default DROP policy to iptables firewall rules — Security hardening: default-deny iptables policy
  • fix: correct dashboard port in README from 8080 to 5000 — Port documentation fix
  • feat: add requirements.txt with pinned Python dependencies — Explicit dependency pinning for reproducible installs

Checklist

  • Branch: publish/20260705
  • No force push
  • Conventional commits only
  • One change per commit
  • JorahOne branding: Dark Amber Cyberpunk, JetBrains Mono, MIT license

Pipeline

  • Phase: 14 (PUBLISHER)
  • Repo: OneByJorah/EdgeGateway
  • Date: 2026-07-05

J1-PIPELINE added 9 commits July 5, 2026 20:35
The README documented the dashboard on port 8080, but the actual
code defaults to port 5000 (DASHBOARD_PORT=5000 in 01_install.sh
and dashboard.py). This mismatch would confuse users trying to
access the dashboard after installation.
The renderLeases() function used innerHTML with template literals
to render DHCP lease data, including untrusted hostnames from
dnsmasq leases. A malicious DHCP client could set a crafted hostname
to inject JavaScript.

Fixed by using DOM API (textContent) instead of innerHTML, which
automatically escapes all HTML entities.
The dashboard's AP subnet check used a fragile prefix match
(client_ip.startswith()) that only worked for /24 subnets.
A /16 or /28 configuration would silently bypass the restriction.

Replaced with Python's ipaddress module for proper CIDR notation
support. Now any valid subnet (e.g., 10.0.0.0/8, 172.16.0.0/16,
192.168.1.0/28) is correctly validated.
…and installer

- Added Requirements section to README documenting root access,
  Cloudflare WARP, WiFi AP chipset, and Telegram Bot Token needs
- Added prominent default password warning in both README and
  01_install.sh output
- Resolves EGW-001 (missing requirements documentation)
The iptables rules flushed existing rules but did not set a
default DROP policy on INPUT and FORWARD chains, leaving the
system with an implicit ACCEPT policy for any traffic not
explicitly matched.

Added explicit DROP defaults for INPUT and FORWARD chains,
with ACCEPT for OUTPUT. This ensures only explicitly allowed
traffic (loopback, established connections, AP→WARP forwarding)
is permitted.
- Created requirements.txt with version-pinned Python dependencies
  (flask, flask-socketio, python-telegram-bot==20.8, psutil,
  requests, gunicorn, eventlet)
- Updated 01_install.sh to install from requirements.txt instead
  of inline pip install
- Added reports/ to .gitignore
- Update git remote URL to OneByJorah/WarpGate
- Update README: title, clone URL, project structure
- Update INTENT.md: all references (repo name, paths, descriptions)
- Update 01_install.sh: /etc/WarpGate, /opt/WarpGate paths
- Update 02_configure.sh: /etc/WarpGate, /opt/WarpGate paths
- Update j1.yaml: repo name
- Update requirements.txt: header comment
- Update deploy_log.txt: header
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant