Fix unhandled StopIteration/AttributeError crashes and unclosed <a> tags in Advisory Curation views
I maintainer di solito rispondono entro 1 giorno
@Anurag-S1ngh ci sta già lavorando.
Dal 24/10/2026.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 72/100
Direzione di ricerca
Start with vulnerabilities/views.py and vulnerabilities/templates/advisory_todos.html, following the named AdvisoryMitigationCurationView and curation data accesses. Check the affected curation views for empty summaries, missing advisories, and missing curation_items, then inspect the conditional links for the three listed curation types. Done means those cases render without uncaught exceptions and each generated link has a matching closing tag.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
While reviewing the advisory curation workflow in vulnerabilities/views.py and advisory_todos.html, I identified two bugs:
-
In
vulnerabilities/views.py,AdvisoryMitigationCurationViewextracts summaries and the primary AVID using:context["advisory_summaries"] = { adv.avid: adv.summary for adv in todo.advisories.all() if adv.summary.strip() } context["avid"] = next(iter(context["advisory_summaries"])) context["curation_items"] = [ a.base_purl for a in todo.advisories.first().impacted_packages.filter( fixed_by_packages__isnull=True ) ]- If advisories have empty summaries,
context["advisory_summaries"]is empty andnext(iter({}))raises an uncaughtStopIteration(HTTP 500). - If a
todohas no linked advisories,todo.advisories.first()returnsNone, raisingAttributeError. - Directly accessing
todo.issue_detail["curation_items"]in other curation views also raisesKeyError/TypeErrorwhen the key is missing.
- If advisories have empty summaries,
-
In
vulnerabilities/templates/advisory_todos.html, opening<a>tags are generated forCONFLICTING_SEVERITY_SCORES,CONFLICTING_WEAKNESSES, andMISSING_FIXED_BY_PACKAGE, but the closing</a>tag is only rendered forsupported_curation.split. This leaves anchor tags unclosed and breaks table row formatting.
Steps to Reproduce
- Open
/advisories/todos/and inspect table rows forCONFLICTING_SEVERITY_SCORES,CONFLICTING_WEAKNESSES, orMISSING_FIXED_BY_PACKAGE: observe that opening<a>tags lack matching closing</a>tags in the rendered HTML output. - Create or identify an
AdvisoryToDoitem of typeMISSING_FIXED_BY_PACKAGEwhere linked advisories have empty summary fields (or where no advisories are linked). - Navigate to
/advisories/todos/<todo_id>/mitigation/curate/for that To-Do item. - Observe Django raising an unhandled
StopIterationorAttributeError, resulting in an HTTP 500 response.
Current Behavior
AdvisoryMitigationCurationViewcrashes with an HTTP 500 error instead of handling empty summaries or missing advisories gracefully.advisory_todos.htmlproduces mismatched anchor tags, corrupting the table DOM structure and causing layout issues in the browser.
Expected Behavior
- The curation views should handle empty summaries, missing advisories, and missing curation data gracefully without raising unhandled exceptions, returning a valid page instead of HTTP 500.
- The generated HTML should be valid, with correctly matched opening and closing
<a>tags for all supported curation types.
Additional Context
I would like to work on this issue myself if assigned.
- Lingua principale
- Python
- Stelle
- 716
- Fork
- 347
- Merge medio
- 13h 47m
- PR unite (30g)
- 8
Preparare l'ambiente
- Include un Dockerfile o un file Docker Compose
- Nessun modello di pull request
- Nessuna guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di aboutcode-org/vulnerablecode
-
OSV parser drops all crates.io affected entries because the ecosystem mapping uses cargoForse già presa @Ashutosh-Panda2004 l’ha presa 6 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
aboutcode-org/vulnerablecode#2485 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Docker Compose setup fails on wait-for-it host web:8000 and missing runtime .envForse già presa @Anurag-S1ngh l’ha presa 9 giorni fa. Aperta
Difficoltà 2/5 Mezza giornata Idoneità per principianti 77/100
aboutcode-org/vulnerablecode#2477 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
OVAL parser corrupts version bounds when the epoch is 10, 20 or the version contains "0:"Forse già presa @Ashutosh-Panda2004 l’ha presa 7 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
aboutcode-org/vulnerablecode#2474 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Docker build fails on Apple Silicon (arm64) — only x86_64 wheels pinned for extractcode-7z, extractcode-libarchive, typecode-libmagicForse già presa Una pull request collegata a questa issue è aperta o già unita. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 86/100
aboutcode-org/vulnerablecode#2426 ·
I maintainer di solito rispondono entro 1 giorno
-
Get NuGet package versions from federated PURL version data in https://github.com/aboutcode-data/Forse di nuovo libera @Anshi321 l’ha presa 29 giorni fa e non c’è nessuna pull request aperta. Apertabug data-quality
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
aboutcode-org/vulnerablecode#2418 · 4 commenti ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di aboutcode-org/vulnerablecode
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
earthtojake/text-to-cad#758 ·
I maintainer di solito rispondono entro 1 giorno
-
domain:upgrades enhancement needs-triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
gke-labs/kube-agents#4634 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
agardnerIT/opamp-server-py#116 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
enhancement good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
elviskahoro/sdk-python-attio#144 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno