Skip to content

feat: FiveM Security series (Part 1 & 2)#7

Merged
Pyth3rEx merged 33 commits intomainfrom
post/fivem-attack-surface
Mar 26, 2026
Merged

feat: FiveM Security series (Part 1 & 2)#7
Pyth3rEx merged 33 commits intomainfrom
post/fivem-attack-surface

Conversation

@Pyth3rEx
Copy link
Copy Markdown
Owner

@Pyth3rEx Pyth3rEx commented Mar 26, 2026

Summary

  • Adds Part 1: FiveM server-side attack surface — event validation, SaaH pattern, Yoda conditions, layered validation, Section 4 (infrastructure)
  • Adds Part 2: FiveM NUI/web surface — XSS via innerHTML, stored/blind XSS, bridge escalation, invokeNative, OS-level foothold, SaaH fixes
  • Blog infrastructure: TOC sidebar, back-to-top button, find-in-post (Ctrl+F), post nav buttons, task list checkboxes, series block UI
  • Styling/linting fixes: scroll-margin for sticky header, rgb() syntax fix, stylelint/markdownlint rule tuning

Test plan

  • Both posts render correctly on local Jekyll serve
  • TOC sidebar tracks active section on scroll
  • Post nav previous/next links correct across series
  • CI passes (markdownlint, stylelint, yamllint, htmlproofer)

Pyth3rEx added 30 commits March 24, 2026 09:15
Completes section 1 (unvalidated server events) with case study,
remediation principles, and code examples using Yoda conditions,
layered validation, and default-to-negative pattern. Expands closing
with threat model framing and anticheat scope analysis.
Renders anchor links to h1/h2 headings when toc: true is set in
front matter. JS builds the nav from Kramdown-generated heading IDs.
Enables table of contents on the FiveM post; explicitly sets toc: false
on existing posts and updates the post template in README.
Enables kramdown GFM input mode for checkbox rendering. Adds task-list
styles with accent-colored checked state to match the site theme.
Adds section 4 covering peripheral attack surfaces (server machine,
permissions, bare metal). Rewrites pre-install checklist as tickable
items. Expands closing with threat model framing.
Strengthens closing with legal consequences teaser and sharing nudge.
Removes section heading to preserve tension, fixes punctuation register.
TOC is now fixed to the left margin, visible on viewports >= 1200px.
Active section is highlighted in accent red with overline, tracked via
scroll position. Back-to-top button fades in after 200px of scroll.
Wraps prose lines and footnotes exceeding the 120 char lint limit.
Adds blank lines around headings, HRs, code blocks, and lists.
Removes trailing colon from heading. Adds trailing newline.
Disables MD025 for intentional multi-h1 structure.
Fixes media feature range notation and missing empty line before rule.
The space-separated rgb(r g b / a) syntax is not supported by the SCSS
compiler used in CI. Replaced with rgba(r, g, b, a) and disabled the
conflicting stylelint color-function-notation and alpha-value-notation
rules to allow legacy notation.
FiveM Security series: Part 1 post + blog UI improvements
- rgb(r g b / a%) → rgba(r, g, b, a) on .find-match
- @media (width >= N) → @media (min-width: N) on .post-toc
actions/jekyll-build-pages@v1 bundles sass-3.7.4 which rejects modern
CSS color-function and media-feature-range syntax required by stylelint.
Switch to ruby/setup-ruby with the project Gemfile (Jekyll 4.3) which
ships sass-embedded and handles both correctly.
fix: replace jekyll-build-pages with ruby/setup-ruby in deploy workflow
fix: SCSS rgb() syntax compatibility with CI compiler
@Pyth3rEx Pyth3rEx self-assigned this Mar 26, 2026
@Pyth3rEx Pyth3rEx added the enhancement New feature or request label Mar 26, 2026
@Pyth3rEx Pyth3rEx force-pushed the post/fivem-attack-surface branch 2 times, most recently from c389986 to 4759b02 Compare March 26, 2026 07:44
@Pyth3rEx Pyth3rEx merged commit f988219 into main Mar 26, 2026
8 checks passed
@Pyth3rEx Pyth3rEx deleted the post/fivem-attack-surface branch March 26, 2026 09:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant