nltk 3.10.4
- Source
- https://github.com/nltk/nltk
- Tag scanned
v3.10.4- Compared with
v3.10.3(41 signals introduced since)- Files
- 749 scanned, 97 skipped (binary, oversized, or unrecognised)
- Signals
- 0 critical · 0 warn · 103 info
- Scan time
- 28.4 s
- LLM review
- Reviewed by claude-haiku-5-5 (Anthropic): 31 of 31 warn and critical signals; 31 demoted to info.
- Disclude version
- 4.1.0
- Scanned (UTC)
- 2026-10-22 07:29
Signals
Ordered by severity, then signals introduced in this release. Hidden characters are shown as ⟨U+…⟩.
-
= f = # bare-exec ok: _assert_safe_signature fenced src (CVE-2026-14727)likely benign eval of a generated lambda source that forwards arguments to a decorator wrapper.Reasoning
This is the well-known decorator-generation pattern that builds a lambda from a validated signature string. The comment notes the source is fenced by a signature-safety check, and the eval namespace is restricted to a small dict.
-
# import sys; print >> sys.stderr, src # for debugging purposes = # bare-exec ok: _assert_safe_signature fenced src (CVE-2026-14727)likely benign eval of generated decorator source that wraps a function with a caller.Reasoning
Same generated-function pattern as the other decorators.py eval. The source is built from the decorated function's signature with a restricted globals dict, and the comment cites a safety check.
-
::`` returnlikely benign Compiles a regex source string for timeout-guarded matching.Reasoning
This compiles a regex source string built internally, with flags, for ReDoS-timeout-guarded matching. Compiling regex is not code execution, and the source comes from library logic rather than untrusted input.
-
return returnlikely benign Compiles a regex pattern with flags as a fallback path.Reasoning
Plain re.compile-style call on a pattern argument after a cache check. This is ordinary regex compilation, not dynamic code execution.
-
= returnlikely benign Compiles a regex derived from an existing pattern's source.Reasoning
Compiles a regex derived from a pattern's source with its flags. This is regex compilation within a ReDoS analysis utility, not code execution.
-
info
warn→ info by reviewhigh-complexitynltk/test/unit/security_probes/ghsa_xv54_447f_mj22.py:1:4new in this release"""GHSA-xv54-447f-mj22 [low]: Symlink-follow sandbox bypass in chat80.sql_query allows out-of-root SQLite file read (CWE-59, CWE-73)"""likely benign Docstring describing a symlink sandbox-bypass advisory in a security test probe.Reasoning
The raw finding is on a docstring describing a security advisory, which is a long, dense text literal. It is a test probe file with no executable payload.
-
info
critical→ info by reviewdynamic-importnltk/test/unit/test_advisory_probes.py:294:68new in this release=likely benign Test monkeypatch of Unpickler.find_class that calls __import__ during an allowlist probe.Reasoning
Within a test, the unpickler's find_class is temporarily replaced with a lambda that imports a module, as part of checking an allowlist restriction. This is test scaffolding for a security probe rather than a payload delivered to users.
-
info
warn→ info by reviewdecoder-import-with-execnltk/test/unit/test_advisory_probes.py:984:23new in this release= = =dismissed Module-level compile of literal regex patterns in an advisory test file.Reasoning
The finding matches a multi-stage shape because the file imports pickle and uses compile, but the flagged calls are compile of literal regex strings for test expectations. There is no decode-then-exec chain.
-
info
unicode-mixed-scriptnltk/test/unit/test_attack_bllip_model_paths_expanded.py:443:53new in this release, = -
info
warn→ info by reviewdynamic-executionnltk/test/unit/test_attack_ccg_expanded.py:1065:17new in this releaseassert ,likely benign Test harness exec of doctest example source with captured output.Reasoning
This is a doctest-runner pattern that executes example source from docstrings in a namespace, with stdout captured and exceptions checked. The source comes from the project's own docstrings during testing.
-
info
warn→ info by reviewdynamic-executionnltk/test/unit/test_attack_ccg_expanded.py:1065:22new in this releaseassert ,likely benign Compiles doctest example source inside the test harness.Reasoning
The compile call is the inner half of the same doctest-execution harness, compiling docstring example source in single mode. It is standard test tooling and not a hidden payload.
-
info
critical→ info by reviewdynamic-importnltk/test/unit/test_attack_chat80_store_expanded.py:50:16new in this releasereturnlikely benign Test helper that dynamically imports an optional module and skips if unavailable.Reasoning
A try/except around __import__ in a test helper that skips the test when an optional module is missing. The name is a test parameter, not attacker input, and the snippet shows no payload or exfiltration.
-
info
critical→ info by reviewdynamic-importnltk/test/unit/test_attack_chat80_val_load_expanded.py:40:16new in this releasereturnlikely benign Test helper that dynamically imports an optional module and skips if unavailable.Reasoning
Same pattern as the sibling test: a dynamic import with ImportError handling that calls pytest.skip. It is test scaffolding for optional dependencies.
-
info
warn→ info by reviewdynamic-executionnltk/test/unit/test_attack_core_guards_expanded.py:169:9new in this release=likely benign Test code using exec to define a function with a non-ASCII parameter name.Reasoning
exec builds a test function with a non-ASCII parameter name from chr(0xE9). The inline comment states the purpose, and the code only defines and returns a function in a test namespace.
-
info
unicode-zero-widthnltk/test/unit/test_attack_data_readline_expanded.py:66:45new in this release -
info
warn→ info by reviewdecoder-decompress-payloadnltk/test/unit/test_attack_gzip_names_expanded.py:264:12new in this releaseassert == b assert == blikely benign Test that decompresses a gzip fixture and compares it to expected content.Reasoning
gzip.decompress is applied to a test fixture file and compared with expected bytes. This is a round-trip check of gzip handling, not a runtime-hidden payload.
-
info
warn→ info by reviewdecoder-decompress-payloadnltk/test/unit/test_attack_json_loaders_expanded.py:1132:20new in this releaseassert < // 10 # genuinely a bomb =likely benign Test that feeds a decompressed gzip bomb to safe_json_loads and expects a size-limit error.Reasoning
The test deliberately decompresses a gzip bomb and checks that safe_json_loads rejects it with a size error. It is a security regression test for a defensive loader.
-
info
unicode-homoglyphnltk/test/unit/test_attack_path_sandbox_expanded.py:508:55new in this release= assert -
info
unicode-mixed-scriptnltk/test/unit/test_attack_path_sandbox_expanded.py:508:55new in this release= assert -
info
critical→ info by reviewdynamic-importnltk/test/unit/test_attack_pickle_candidates_expanded.py:212:24new in this release, = = = assertlikely benign Test that resolves module/name pairs dynamically to validate pickle class lookup.Reasoning
The dynamic import resolves module and name pairs from a test list to check that a pickle loader's find_class behaves correctly. The inputs are fixed test data, not untrusted runtime input.
-
info
unicode-homoglyphnltk/test/unit/test_attack_pickle_candidates_expanded.py:358:30new in this release# Cyrillic small letter 'o' (U+043E) and 'ѕ' (U+0455) resemble ASCII o / s. = -
info
unicode-mixed-scriptnltk/test/unit/test_attack_pickle_candidates_expanded.py:358:30new in this release# Cyrillic small letter 'o' (U+043E) and 'ѕ' (U+0455) resemble ASCII o / s. = -
info
unicode-mixed-scriptnltk/test/unit/test_attack_pickle_candidates_expanded.py:358:37new in this release# Cyrillic small letter 'o' (U+043E) and 'ѕ' (U+0455) resemble ASCII o / s. = -
info
unicode-mixed-scriptnltk/test/unit/test_attack_pickle_candidates_expanded.py:358:52new in this release# Cyrillic small letter 'o' (U+043E) and 'ѕ' (U+0455) resemble ASCII o / s. = -
info
warn→ info by reviewframe-introspectionnltk/test/unit/test_attack_punkt_model_available_expanded.py:102:5new in this releaseyieldlikely benign Test fixture that temporarily installs a profiler to record calls.Reasoning
sys.setprofile is installed in a test context manager to record which functions are called, and the previous profiler is restored in a finally block. This is a test instrumentation technique with no exfiltration or hiding.
-
info
warn→ info by reviewframe-introspectionnltk/test/unit/test_attack_punkt_model_available_expanded.py:106:9new in this releaselikely benign Cleanup restoring the previous profiler after a test fixture.Reasoning
This is the restore step of the same profiler fixture, resetting the previous profile in finally. It is cleanup of benign test instrumentation.
-
info
warn→ info by reviewdynamic-executionnltk/test/unit/test_attack_translate_expanded.py:348:12new in this releaseassert == assert == assert ==likely benign Test that evaluates the repr of an Alignment to verify round-tripping.Reasoning
eval runs on repr(alignment) with only the Alignment class in scope, as a round-trip equality check in a test. The input is generated by the code under test, not external data.
-
info
warn→ info by reviewdynamic-executionnltk/test/unit/test_attack_translate_expanded.py:444:12new in this releaseassert == f assert == assert ==likely benign Test that evaluates an Alignment repr with a restricted namespace to verify round-tripping.Reasoning
Same repr round-trip check with a restricted namespace, using a large index value in a test. It verifies the Alignment repr and is not a dropper.
-
info
warn→ info by reviewdynamic-executionnltk/test/unit/test_attack_tree_repr_recursion.py:110:16new in this releaseassert == assert == assert ==likely benign Test that evaluates a rendered Tree repr to verify round-tripping.Reasoning
eval on the rendered Tree repr with only Tree in the namespace, checked against the original tree. It is a serialization round-trip test for recursion handling.
-
info
critical→ info by reviewdynamic-importnltk/test/unit/test_chat80_val_round_trip.py:52:18new in this release=likely benign Test helper that dynamically imports an optional module and skips if unavailable.Reasoning
A try/except around __import__ with pytest.skip when the module is unavailable. This is optional-dependency handling in a test.
-
, # JVM sizing flag does not belong on the server command , # Cyrillic homoglyph of -port , # fullwidth digits , # oversize token -
, # JVM sizing flag does not belong on the server command , # Cyrillic homoglyph of -port , # fullwidth digits , # oversize token -
, # fullwidth , # cyrillic homoglyph of "po" , , -
info
warn→ info by reviewdynamic-executionnltk/test/unit/test_decorators_security.py:292:5new in this release=likely benign Test code using exec to define a victim function with a reserved name.Reasoning
exec builds a victim function with a reserved parameter name to test decorator security handling. The comment explains the purpose, and the code only defines a function in a test namespace.
-
info
warn→ info by reviewdynamic-executionnltk/test/unit/test_decorators_security.py:461:5new in this release=likely benign Test code using exec to define a victim function with a soft-keyword or dunder name.Reasoning
exec defines a victim function with a soft-keyword or dunder name for a decorator regression test. The comment explains the purpose, and the snippet shows no payload.
-
info
warn→ info by reviewdynamic-executionnltk/test/unit/test_decorators_security.py:474:9new in this release=likely benign Test code using exec to define functions with long or many parameter names for decorator testing.Reasoning
The exec call builds Python source from f-string parameter names inside a unit test that deliberately creates functions with very long or many parameters to exercise decorator security. The inline comment explains the intent. The inputs are test-generated identifiers, not attacker-controlled data, so this is a legitimate test fixture pattern.
-
, , # zero-width joiner inside the name , , # right-to-left override, a valid char -
0x4E2D, 0x65E5, # α 中 日 0x905, 0x5D0, -
, , ] -
info
warn→ info by reviewframe-introspectionnltk/test/unit/test_ycoe_streamview_pathsec.py:180:39new in this release=likely benign Test spy inspects its caller's file via sys._getframe to verify path handling.Reasoning
The test uses sys._getframe(1) inside a spy function to check whether the caller is the module under test, which is a common technique for path-security tests that intercept open calls. It is confined to a test file and does not exfiltrate or hide behavior.
-
), , , ], -
:likely benign Base64-encoded GIF image data embedded as a string constant in an NLTK app module.Reasoning
The raw-pass finding is a base64 blob that begins with the GIF header (R0lGOD), consistent with embedded image assets for a GUI demo. It is a raw-pass finding, which has a higher false-positive rate, and nothing shows it being decoded and executed.
-
= = = returnlikely benign Dynamic __import__ of a named module after temporarily adjusting sys.path.Reasoning
This is a temporary sys.path manipulation used to import a module by name, then restores the path. Dynamic import by a caller-supplied name is a legitimate utility, though the module argument should be trusted.
-
: , : , : , : , -
= =likely benign Lazy module loader calling __import__ to load the real module on demand.Reasoning
A lazy-module loader that imports the underlying module on first attribute access. Dynamic __import__ with a fixed full_name from the lazy wrapper is standard for this design.
-
>>> # doctest: +SKIP -
, , , , -
, , , , -
, , , , -
, , , , -
, , , , -
, , , , -
, , , , -
, , , , -
, , , , -
, , , , -
, , , , -
, , , , -
, , , , -
, , , , -
, , , , -
, , , , -
, , , , -
, , , , -
, , , , -
, , , , -
, , , , -
, , , , -
, , , , -
, , , , -
, , , , -
, , , , -
, , , , -
, , , , -
, , , , -
, , , , -
, , , , -
, , , , -
, , , , -
, , , , -
, , , , -
, , -
= = =likely benign Selects a Snowball stemmer class by language name from module globals.Reasoning
The stemmer class is looked up by name from the module's globals using a language string. The language is checked against a supported list earlier, and the target is a known stemmer class, so this is a plain dispatch table pattern.
-
Os temas escolhidos s�o cinco: �Patrim�nio Virtual� (explora��o dos monumentos portugueses usando as tecnologias da realidade virtual); �Portugal Global� (Sagres como antena de expans�o e comunica��o da expans�o global e local dos portugueses); �Sacra Saturni� (Sagres como lugar de mist�ri… (341 bytes total) -
Poucos minutos depois do final da reuni�o que, durante cerca de tr�s horas, juntou o Provedor demission�rio e os deputados da Comiss�o Parlamentar de Direitos, Liberdades e Garantias, era divulgado um comunicado onde se real�a �a actua��o de elevado m�rito do dr. M�rio Raposo, marcada por crit�rio… (341 bytes total) -
Mas para al�m dos temas desse �lbum, e em particular da vers�o minimalista de �All apologies�, um original de Kurt Cobain que Sin�ad adoptou j� depois da morte do l�der dos Nirvana, espera-se ainda a interpreta��o de algumas das outras can��es que a tornaram notada, em particular as do �lbum … (340 bytes total) -
A demiss�o de Hans-Dietrich Genscher e a crise pol�tica que atravessa o Governo de Bona (tendo em pano de fundo uma �derrapagem� econ�mica, resultado da unifica��o, que est� a afectar a Alemanha e a ser inevitavelmente �exportada� para os outros pa�ses europeus) �, talvez, o maior rev�s que a … (341 bytes total) -
Porque, depois deste registo de 1972, ficaria imortalizada em som e imagem -- na realiza��o visual de Jean-Pierre Ponnelle -- uma aproxima��o dos finais dos anos 70 deliberadamente expressionista e, agora, em 1993, em Salzburgo, Harnoncourt surpreende (e abre uma inflamada pol�mica) ao explorar at� aos limi… (341 bytes total) -
Ao longo de uma obra original em que tem procurado figurar a g�nese e os momentos mais marcantes da nossa modernidade filos�fica e est�tica, o fil�sofo Manfred Frank (ainda desconhecido do leitor portugu�s, mas j� muito traduzido em Fran�a e na It�lia) serve-se, entre outros, do mito do judeu errante, n… (341 bytes total) -
As duas vertentes -- Aasvero e o Holand�s -- cruzam-se e fundem-se a partir do s�culo XVI, com um predom�nio, no plano da mat�ria dieg�tica, da deriva mar�tima sobre a err�ncia terrestre, desde �Os Lus�adas� e as narrativas de viagens inglesas e holandesas, at� ao �Ancient Mariner� de Coleridg… (341 bytes total) -
Quanto a Portugal, Ferreira do Amaral reafirmou ontem que as vias priorit�rias de liga��o � Galiza s�o a conclus�o da auto-estrada Porto-Valen�a- e bem assim a conclus�o do IP1, entre a ponte que ontem inaugurou com Jos� Borrell e a ponte que ambos tamb�m inauguraram h� dois anos no Guadiana-, a a… (341 bytes total) -
Analisando estes dados, a AIP constata que, �se � um facto que em todos os subconjuntos (empresas industriais, de constru��o, com�rcio e servi�os, exportadoras e n�o exportadoras) se verifica uma maioria de empresas em que os encargos financeiros s�o inferiores a cinco por cento do volume de vendas, �… (341 bytes total) -
Assim, encorajado pela total disponibilidade do meu interlocutor, que igualmente admito, tentaria que entendesse, pelo menos, as vantagens econ�micas, em termos de desenvolvimento local (tur�stico, por exemplo), da salvaguarda da invulgarmente importante, mesmo � escala mundial, jazida com pegadas de dinoss�uri… (341 bytes total) -
Da lista fazem parte filmes como �Au nom du Christ�, do realizador Roger Gnoan M'Bala (Costa do Marfim), �Beijing Zazhong�, de Zhang Yuan, considerado o primeiro filme �punk-rock� chin�s, �Bhaji on the Beach�, de Gurinder Chadha (Gr�-Bretanha), �Koraku Zaru�, do japon�s Kenchi Iwamoto, �L'… (339 bytes total) -
�Adeus America� de Jan Schutte, �O Casamento de Muriel� de P.J. Hogan, �71 Fragmentos da Cronologia de Um Acaso�, de Michael Haneke, �Fresh� de Boaz Yakin, �Venus de Neve� de Sotiris Gortisas, �Costas �s Costas , Cara a Cara� de Huang Jianxin, �Rainha Bandida� de Shekkar Kapur, �Sem Pele… (341 bytes total) -
= = -
= = -
# A string containing both skin tone modifier and ZWJ Sequences = = -
>>> = u >>> = u -
>>> = u >>> = u # Expected tokens.dismissed Docstring doctest sample text in the NIST tokenizer, flagged by a raw-pass compression heuristic.Reasoning
The flagged content is a docstring example containing ordinary Unicode text (Japanese and IPA characters) used as tokenizer test input. The high compression ratio is an artifact of a short string literal with repeated characters in a doctest, not obfuscation.
-
:: 1 - :: , -
:: :: , ++, 4.7
Reproduce This Scan
Run disclude locally to verify. Add --format sarif for SARIF output. Add --llm (with an API key in the environment) to include the LLM review.
&&