43 lines
1.6 KiB
Markdown
43 lines
1.6 KiB
Markdown
---
|
|
id: "bug-1869"
|
|
status: "fixed"
|
|
status_updated: "2026-09-26"
|
|
status_note: "5df33e69: xcecd_open_owned_file()/xcecd_owned_file_exists() (xcecd_tmpfile.h) for the worker log, xcecd_worker.log and restart flag; fchmod instead of chmod(path)."
|
|
component: "worker"
|
|
severity: "security"
|
|
timestamp: "2026-09-26T07:55:23Z"
|
|
last_seen: "2026-09-26T07:55:23Z"
|
|
occurrences: 1
|
|
files: ["src/worker/src/process_worker_manager.c", "src/worker/src/xcecd.c"]
|
|
tags: ["security", "worker", "symlink", "tmp"]
|
|
related: ["bug-1868"]
|
|
fix_commits: ["5df33e69"]
|
|
legacy: true
|
|
gitea_issue: 289
|
|
gitea_synced_status: "fixed"
|
|
gitea_synced_hash: "a2de8eb03d0d"
|
|
---
|
|
|
|
# bug-1869: Other root-owned opens of fixed /tmp names in the worker daemon follow symlinks…
|
|
|
|
## Description
|
|
Other root-owned opens of fixed /tmp names in the worker daemon follow symlinks: process_worker_manager.c opens /tmp/xcecd_worker.log O_WRONLY|O_CREAT|O_APPEND (xcecd_worker's stdout/stderr appended through a planted symlink into any file), and xcecd_prepare_restart() (xcecd.c) opens /tmp/.xcecd.restarting O_CREAT|O_WRONLY (creates an empty root-owned file at a dangling symlink's target)
|
|
|
|
## Environment
|
|
_Not recorded (migrated from buglog.json)._
|
|
|
|
## Reproduction
|
|
_Not recorded (migrated from buglog.json)._
|
|
|
|
## Root cause
|
|
Same class as bug-1868: fixed, predictable names in world-writable /tmp opened by root without O_NOFOLLOW/O_EXCL; only the host's fs.protected_symlinks sysctl mitigates. Found while fixing bug-1868; left out of that fix's scope.
|
|
|
|
## Fix
|
|
_Not recorded (migrated from buglog.json)._
|
|
|
|
## Verification
|
|
_Not recorded (migrated from buglog.json)._
|
|
|
|
## References
|
|
- Related: bug-1868
|
|
- Gitea: #289
|