Adding Microsoft SECURITY.MD - #4
Merged
jakepresent merged 1 commit intoMay 5, 2026
Merged
Conversation
jakepresent
deleted the
users/GitHubPolicyService/462a453d-4803-4024-bb28-31c79aafaf4c
branch
May 5, 2026 19:30
AaronAspinwall123
added a commit
that referenced
this pull request
May 8, 2026
Five issues raised in the Copilot Code Review and confirmed by manual inspection. All 560 Python tests pass (+9 new) and viewer `npm run check` reports 0 errors / 0 warnings. #1 (security, viewer/src/lib/server/artifacts.ts): manifestRelativePath now filters out '..' parts and manifestArtifactPath returns null when the path would escape the suite directory; runSeedRows already falls back to the legacy seeds.jsonl in that case. #2 (bug, viewer/src/lib/server/artifacts.ts): listRunIds now also filters entries through isSafeArtifactId so the run list cannot include names that requireSafeId would later reject with a 500. #3 (critical, p2m/runner.py + p2m/core/artifact_cache.py): when artifact caching is active, the runner now overrides save_dir/save_path in raw_cfg via override_cacheable_output_paths so user YAML cannot redirect cacheable stage outputs outside the versioned artifact dir. finalize_artifact_plan would otherwise fail to find the outputs. #4 (security, p2m/viewer_read_model.py): _manifest_relative_path now rejects '..' segments and returns None; _seed_artifact_path falls back to suite_dir/seeds.jsonl when the helper rejects the manifest path. #5 (operational, p2m/core/artifact_cache.py): _load_json_object now catches json.JSONDecodeError and OSError, prints a stderr warning, and returns None so a corrupt latest.json/artifact.json degrades to a cache miss instead of aborting the pipeline. _resolve_ref_path also rejects '..' segments as defense in depth. New tests: - test_artifact_cache.py: corrupt JSON gracefully ignored, non-object payload rejected, _resolve_ref_path traversal rejection, override_cacheable_output_paths for policy save_dir, seeds save_path, and unknown stage no-op. - test_runner_artifact_cache.py: end-to-end test that user-supplied save_dir/save_path in raw_cfg is overridden so artifacts still land in the versioned cache directory. - test_viewer_server_artifacts.py: _manifest_relative_path traversal rejection (in both the existing TS-gated class and a new always-run ViewerReadModelHelpersTest class) and _seed_artifact_path fallback on malicious manifests. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
AaronAspinwall123
added a commit
that referenced
this pull request
May 8, 2026
Four follow-up issues raised by Copilot on commit cc96e06. All 561 Python tests pass (+1 net new) and viewer `npm run check` reports 0 errors / 0 warnings. #1 (moderate, bug, p2m/core/artifact_cache.py): activate_latest_artifacts now detects whether the artifact_dir or metadata_path in latest.json was stale (resolved path missing) and, when it is, rebuilds the ref via _ref_from_metadata using the on-disk paths and persists the corrected ref through update_latest. Without this, ctx and downstream run manifests silently propagated paths that no longer exist. #2 (critical, security, viewer/src/lib/server/artifacts.ts): manifestArtifactPath now refuses absolute paths from manifest.json (with a console warning) and returns null, so runSeedRows falls back to the legacy seeds.jsonl. Without this, an absolute path bypassed the relative '..' defense. #3 (critical, security, p2m/viewer_read_model.py): _seed_artifact_path now refuses absolute paths from manifest.json (with a stderr warning) and falls back to suite_dir/seeds.jsonl, matching the TS fix. #4 (moderate, maintainability, tests/test_viewer_server_artifacts.py): removed the duplicated _seed_artifact_path traversal test from the TS-gated ViewerServerArtifactsTest; the always-run ViewerReadModelHelpersTest is the single home for these helper assertions and now also covers the absolute-path defense. New test: - tests/test_artifact_cache.py: test_activate_latest_rebuilds_ref_when_recorded_paths_are_stale - regression for #1; mutates latest.json to point at MISSING paths and asserts both ctx and the persisted latest.json are updated to the on-disk version directory. - tests/test_viewer_server_artifacts.py: ViewerReadModelHelpersTest.test_seed_artifact_path_rejects_absolute_paths - regression for #3. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
tangym
added a commit
that referenced
this pull request
May 22, 2026
Cover the three missing dimension categories identified in design gap #4: - tool-use: wrong tool, incorrect arguments, missing/redundant calls - multi-turn: context loss, goal drift across turns - instruction-following: constraint violation, partial completion
tangym
added a commit
that referenced
this pull request
May 22, 2026
Cover the three missing dimension categories identified in design gap #4: - tool-use: wrong tool, incorrect arguments, missing/redundant calls - multi-turn: context loss, goal drift across turns - instruction-following: constraint violation, partial completion
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.
Please accept this contribution adding the standard Microsoft SECURITY.MD 🔒 file to help the community understand the security policy and how to safely report security issues. GitHub uses the presence of this file to light-up security reminders and a link to the file. This pull request commits the latest official SECURITY.MD file from https://github.com/microsoft/repo-templates/blob/main/shared/SECURITY.md.
Microsoft teams can learn more about this effort and share feedback within the open source guidance available internally.