Repository navigation
v5.4.0 — Release A: MQTT-Race-Fix + CSRF + OTA-Stall-Budget - #9
Merged
Merged
Conversation
F1 (A1+A2): subscribe/unsubscribe nur noch in onMqttConnect; EIN Wildcard-Subscribe <prefix>/<dev>/+/set statt pro-Luefter -> kein Vektor-Race mit dem esp-mqtt-Task. applyDo (Core 1) marshallt nur publish-only CLEANUP/RESYNC via g_mqttOpQ an Core 0 (loest A2). F2 (SEC-1): CSRF Origin/Referer-vs-Host auf state-changing POSTs; curl/OTA unberuehrt. F3 (SEC-3): absolutes OTA-Transfer-Budget (5 min) gegen Trickle-DoS. Geflasht+verifiziert auf Geraet: 5.4.0 bootet, Anti-Brick committet, MQTT ok, kein Crash. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Release A — Audit-Fixes (Stabilität + Security), alle auth-frei
Behebt die drei wichtigsten Befunde aus dem internen Correctness- + Security-Audit.
F1 — MQTT-Subscription-Race (A1) + synchroner Publish reißt WDT (A2)
applyDo(Core 1) riefmqtt.subscribe/unsubscribedirekt auf → Data-Race mit der Iteration des lock-freien_topicSubscriptionListim esp-mqtt-Task (CRASH), per CSRF sogar remote auslösbar. Fix:subscribe/unsubscribelaufen nur noch inonMqttConnect(dem einzigen Kontext, der mit der Iteration serialisiert ist); ein Wildcard-Subscribe<prefix>/<dev>/+/setstatt pro-Lüfter, Callback parst den Fan-Namen aus dem Topic. Rename/Delete fassen Subscriptions nie mehr an;applyDomarshallt nur publish-only Cleanup/Resync viag_mqttOpQan Core 0 (löst A2).F2 — CSRF (SEC-1)
Origin/Referer-Prüfung gegen denHostauf allen state-changing POSTs. curl/native Clients (kein Origin) bleiben erlaubt →/ota-Recovery unberührt; cross-origin Browser-POSTs → 403.F3 — OTA-Stall-DoS (SEC-3)
Absolutes OTA-Transfer-Budget (5 min) gegen Trickle-Uploads, die den seriellen HTTP-Handler unbegrenzt blockieren (und damit die OTA-Recovery).
Verifiziert
ota_pendingtrue→false, kein Rollback), MQTT verbunden, Wildcard-Befehlspfad verarbeitet/setohne Crash, 4 Lüfter ok,crash_streak:0, Dual-Core-Heartbeats ticken.Interner Audit-Hintergrund:
docs/audit-2026-06-20.md+docs/audit-security-2026-06-20.md(gitignored).🤖 Generated with Claude Code