Skip to content

feat: add stall-recovery cold-start fallback for automated op recovery#330

Open
l50 wants to merge 2 commits into
mainfrom
fix/stall-detection-cold-start
Open

feat: add stall-recovery cold-start fallback for automated op recovery#330
l50 wants to merge 2 commits into
mainfrom
fix/stall-detection-cold-start

Conversation

@l50
Copy link
Copy Markdown
Contributor

@l50 l50 commented May 17, 2026

Key Changes:

  • Implemented a new cold-start fallback for automated stall recovery when no
    users or credentials have been discovered but DCs are known
  • Added deduplication logic for cold-start tasks across recovery attempts
  • Enhanced logging and dispatch tracking for stall recovery operations

Added:

  • Cold-start deduplication key and selection logic to build unique keys per
    domain and recovery attempt, ensuring idempotent dispatch of fallback tasks
  • select_stall_cold_start_work function to select eligible cold-start work
    items when the op is stalled with known DCs but no users/creds
  • New fallback branch in auto_stall_detection to submit AS-REP roast-based
    user enumeration when previous strategies yield no results, gated by the
    asrep_roast strategy allowlist
  • Unit tests for cold-start dedup key construction, work selection logic, and
    deduplication across attempts

Changed:

  • Enhanced the stall detection logic to track and log the number of fallback
    tasks dispatched per recovery attempt, improving observability
  • Updated deduplication constant lists and test coverage in state management
    modules to include the new stall_cold_start dedup set

l50 added 2 commits May 17, 2026 10:55
…enarios

**Added:**

- Introduced cold-start stall recovery branch that triggers user enumeration
  against known domain controllers when no users or credentials have been
  discovered but DCs are known, falling back to AS-REP roast via seclists and
  kerbrute if the technique is allowed
- Added `stall_cold_start_dedup_key` function to build deduplication keys for
  cold-start recovery attempts, with tests verifying key construction and
  lowercasing
- Implemented `select_stall_cold_start_work` to choose DCs for cold-start
  enumeration, respecting deduplication and domain domination, with comprehensive
  unit tests for edge cases
- Registered `DEDUP_STALL_COLD_START` in deduplication set constants and
  relevant deduplication tracking infrastructure

**Changed:**

- Modified stall detection logic to dispatch and log cold-start recovery actions,
  tracking the number of dispatched actions and improving logging granularity for
  fallback actions
- Updated tests and deduplication set assertions to include new cold-start
  deduplication set
…ection

**Changed:**

- Reformatted the call to `build_asrep_payload` to use a single-line style,
  improving code readability and consistency in `auto_stall_detection` function
@codecov
Copy link
Copy Markdown

codecov Bot commented May 17, 2026

Codecov Report

❌ Patch coverage is 68.22430% with 34 lines in your changes missing coverage. Please review.
✅ Project coverage is 78.84%. Comparing base (bedcd99) to head (ceb96c7).
⚠️ Report is 1 commits behind head on main.

Files with missing lines Patch % Lines
...cli/src/orchestrator/automation/stall_detection.rs 67.92% 34 Missing ⚠️
Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##             main     #330      +/-   ##
==========================================
- Coverage   78.85%   78.84%   -0.01%     
==========================================
  Files         438      438              
  Lines      125614   125718     +104     
==========================================
+ Hits        99050    99123      +73     
- Misses      26564    26595      +31     
Files with missing lines Coverage Δ
ares-cli/src/orchestrator/state/inner.rs 92.83% <100.00%> (+0.01%) ⬆️
ares-cli/src/orchestrator/state/mod.rs 97.82% <ø> (ø)
...cli/src/orchestrator/automation/stall_detection.rs 70.84% <67.92%> (-0.26%) ⬇️
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant