T09 · Insecure Skill Coding Practices
- Location
scripts/oura_fetch_daily.py:81- Finding
Sensitive Oura health data written to a predictable temporary file without restrictive permissions
- Content
View full analysis
None: ap = argparse.ArgumentParser() ap.add_argument("--date", required=True, help="today|yesterday|YYYY-MM-DD") ap.add_argument("--out", required=True) ap.add_argument("--tz", default=os.environ.get("OURA_TZ", "Asia/Shanghai")) args = ap.parse_args() token = must_env("OURA_ACCESS_TOKEN") day = resolve_date(args.date, args.tz) start_date, end_date = day_range(day) bundle: Dict[str, Any] = { "requested_date": day, "requested_tz": args.tz, "fetched_at": datetime.utcnow().isoformat() + "Z", "api_base": API_BASE, "endpoints": { "sleep": fetch_collection("/usercollection/sleep", token, start_date, end_date), "readiness": fetch_collection("/usercollection/readiness", token, start_date, end_date), "activity": fetch_collection("/usercollection/daily_activity", token, start_date, end_date), }, } with open(args.out, "w", encoding="utf-8") as f: json.dump(bundle, f, indent=2, sort_keys=True) f.write("\n") ``` ### Technical Analysis The raw bundle contains sensitive sleep, readiness, and activity ...[truncated 2318 chars]- Remediation
View remediation
