SSWConsulting / SSWConsulting/SSW.MeetupMCP

Audit log cannot distinguish a legitimate publish from an injected one

Open
#14 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Area: Backend Type: Refactor
Dominant language
TypeScript
Stars
1
Forks
0
PR merge metrics
No merged PRs in 30d

Description

Summary

Audit entries record {timestamp, osUsername, clientName, clientVersion, tool, groupUrlname, eventId, result} and nothing about what was actually written. If an agent is induced to publish a defaced event, that log line is byte-identical to a legitimate publish.

Context

The redaction is deliberate and the instinct is right: descriptions, tokens and keys should not be in the log, and docs/live-acceptance.md step 13 checks for exactly that. The gap is that the log now cannot answer the one question it exists to answer.

Suggested fix

Record a SHA-256 of the submitted title and description rather than the values themselves. That stays non-sensitive, keeps the acceptance check passing, and makes it possible to prove after the fact whether what was published matched what the operator approved.

Related, smaller point in the same file

src/audit/audit-logger.ts:41 passes mode: 0o600, which only applies when the file is first created and is effectively a no-op on Windows, currently the only supported platform. The parent directory is created with default permissions at line 40. Either set an appropriate ACL or adjust docs/setup.md so it does not imply the log is access-controlled.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with src/audit/audit-logger.ts, especially lines 40-41, and read docs/live-acceptance.md step 13 plus docs/setup.md. Trace the submitted title and description into the audit entry, then verify the log remains non-sensitive while distinguishing different published content; also resolve the file and parent-directory permission behavior documented in the issue.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
security
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.