PkgRadar

Package evidence

litellm==1.84.9

Py Runtime Dynamic Dangerous Import: Dynamic __import__('os') — reflection bypass for static checks.

Trust signals

Why this verdict

PkgRadar discounts a release’s score when public reputation argues against novel malware. The verdict above already reflects these — the panel just explains what was applied.

Versions published
1,166Mature · −50% score
First published
Jul 2023
Publisher
BerriAI

Effective trust discount applied: 50% (max across signals — discounts don’t stack). New install-lifecycle deltas vs the previous release would clear the discount.

Recommended action

Block this update

Static evidence trips multiple high-signal indicators. Quarantine the release until the publisher validates the change or you can rule out the indicators below.

Block this release in CIcurl · GitHub Actions

Fail the build when this package version is added or upgraded. Replace $PKGRADAR_TOKEN with a Pro / Team API key from your dashboard.

curl -fsS https://pkgradar.com/gate/npm \
  -H "Authorization: Bearer $PKGRADAR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"specs":["litellm==1.84.9"],"fail_on":"high"}'

GitHub Actions step:

- name: PkgRadar gate
  run: |
    curl -fsS https://pkgradar.com/gate/npm \
      -H "Authorization: Bearer ${{ secrets.PKGRADAR_TOKEN }}" \
      -H "Content-Type: application/json" \
      -d '{"specs":["litellm==1.84.9"],"fail_on":"high"}'
PublisherBerriAI
Artifact bytes15,118,557
Previous versionnone
Published2026-06-17T01:23:03
SHA-2566e0f34d0f1970612c0e2911985281fdafd3735b35a59a9b573226c196f3960ce

Why flagged

What the scanner saw

Py Runtime Dynamic Dangerous Import: Dynamic __import__('os') — reflection bypass for static checks.

Not observed: package install, lifecycle script execution, or sandbox execution. PkgRadar only inspects on-disk artifacts.

Availability ledger

available

high
Last checked
highRisk
72Score
1.84.9Version
Status history (1 event)
  1. newavailable · risk high · score 72 · status changed

Evidence

Static findings

56 static · 0 from release diff · showing high-signal first.

SeverityKindPathDetailPoints
highPy Runtime Dynamic Dangerous Importlitellm-1.84.9/litellm/integrations/gcs_bucket/gcs_bucket_mock_client.pyDynamic __import__('os') — reflection bypass for static checks.30
mediumPy Custom Build Backendpyproject.tomlNon-standard PEP 517 build-backend `uv_build` — runs custom code at install time.15
mediumCredential file accesslitellm-1.84.9/litellm/llms/vertex_ai/image_edit/vertex_gemini_transformation.pymatched "GOOGLE_APPLICATION_CREDENTIALS"10
mediumCredential file accesslitellm-1.84.9/litellm/llms/vertex_ai/image_edit/vertex_imagen_transformation.pymatched "GOOGLE_APPLICATION_CREDENTIALS"10
mediumCredential file accesslitellm-1.84.9/litellm/llms/vertex_ai/image_generation/vertex_gemini_transformation.pymatched "GOOGLE_APPLICATION_CREDENTIALS"10
mediumCredential file accesslitellm-1.84.9/litellm/llms/vertex_ai/image_generation/vertex_imagen_transformation.pymatched "GOOGLE_APPLICATION_CREDENTIALS"10
mediumCredential file accesslitellm-1.84.9/litellm/utils.pymatched "AWS_ACCESS_KEY"10
Show all 56 findings (low-signal and informational)
SeverityKindPathDetailPoints
highPy Runtime Dynamic Dangerous Importlitellm-1.84.9/litellm/integrations/gcs_bucket/gcs_bucket_mock_client.pyDynamic __import__('os') — reflection bypass for static checks.30
mediumPy Custom Build Backendpyproject.tomlNon-standard PEP 517 build-backend `uv_build` — runs custom code at install time.15
mediumCredential file accesslitellm-1.84.9/litellm/llms/vertex_ai/image_edit/vertex_gemini_transformation.pymatched "GOOGLE_APPLICATION_CREDENTIALS"10
mediumCredential file accesslitellm-1.84.9/litellm/llms/vertex_ai/image_edit/vertex_imagen_transformation.pymatched "GOOGLE_APPLICATION_CREDENTIALS"10
mediumCredential file accesslitellm-1.84.9/litellm/llms/vertex_ai/image_generation/vertex_gemini_transformation.pymatched "GOOGLE_APPLICATION_CREDENTIALS"10
mediumCredential file accesslitellm-1.84.9/litellm/llms/vertex_ai/image_generation/vertex_imagen_transformation.pymatched "GOOGLE_APPLICATION_CREDENTIALS"10
mediumCredential file accesslitellm-1.84.9/litellm/utils.pymatched "AWS_ACCESS_KEY"10
lowCredential file accesslitellm-1.84.9/litellm/caching/caching.pymatched "aws_access_key"5
lowCredential file accesslitellm-1.84.9/litellm/caching/s3_cache.pymatched "aws_access_key"5
lowCredential file accesslitellm-1.84.9/litellm/experimental_mcp_client/client.pymatched "aws_access_key"5
lowCredential file accesslitellm-1.84.9/litellm/integrations/focus/destinations/factory.pymatched "aws_access_key"5
lowCredential file accesslitellm-1.84.9/litellm/integrations/focus/destinations/s3_destination.pymatched "aws_access_key"5
lowCredential file accesslitellm-1.84.9/litellm/integrations/s3.pymatched "aws_access_key"5
lowCredential file accesslitellm-1.84.9/litellm/integrations/s3_v2.pymatched "aws_access_key"5
lowCredential file accesslitellm-1.84.9/litellm/integrations/sqs.pymatched "aws_access_key"5
lowCredential file accesslitellm-1.84.9/litellm/litellm_core_utils/get_litellm_params.pymatched "aws_access_key"5
lowCredential file accesslitellm-1.84.9/litellm/litellm_core_utils/secret_redaction.pymatched "aws_secret_access_key"5
lowCredential file accesslitellm-1.84.9/litellm/llms/bedrock/base_aws_llm.pymatched "aws_access_key"5
lowCredential file accesslitellm-1.84.9/litellm/llms/bedrock/chat/mantle/transformation.pymatched ".aws/"5
lowCredential file accesslitellm-1.84.9/litellm/llms/bedrock/common_utils.pymatched "aws_access_key"5
lowCredential file accesslitellm-1.84.9/litellm/llms/bedrock/files/handler.pymatched "aws_access_key"5
lowCredential file accesslitellm-1.84.9/litellm/llms/bedrock/files/transformation.pymatched "aws_access_key"5
lowCredential file accesslitellm-1.84.9/litellm/llms/bedrock/messages/mantle_transformation.pymatched ".aws/"5
lowCredential file accesslitellm-1.84.9/litellm/llms/bedrock/realtime/handler.pymatched "aws_access_key"5
lowCredential file accesslitellm-1.84.9/litellm/llms/vertex_ai/vertex_ai_aws_wif.pymatched "aws_access_key"5
lowCredential file accesslitellm-1.84.9/litellm/llms/vertex_ai/vertex_ai_non_gemini.pymatched "GOOGLE_APPLICATION_CREDENTIALS"5
lowCredential file accesslitellm-1.84.9/litellm/main.pymatched "aws_access_key"5
lowCredential file accesslitellm-1.84.9/litellm/proxy/_experimental/mcp_server/db.pymatched "aws_access_key"5
lowCredential file accesslitellm-1.84.9/litellm/proxy/_experimental/mcp_server/mcp_server_manager.pymatched "aws_access_key"5
lowCredential file accesslitellm-1.84.9/litellm/proxy/_experimental/out/_next/static/chunks/9b0ee76cbdef1a2a.jsmatched "aws_access_key"5
lowCredential file accesslitellm-1.84.9/litellm/proxy/_experimental/out/_next/static/chunks/d3ac82723ec9e30d.jsmatched ".ssh/"5
lowCredential file accesslitellm-1.84.9/litellm/proxy/auth/rds_iam_token.pymatched "aws_access_key"5
lowCredential file accesslitellm-1.84.9/litellm/proxy/common_utils/load_config_utils.pymatched "aws_access_key"5
lowCredential file accesslitellm-1.84.9/litellm/proxy/common_utils/openai_endpoint_utils.pymatched "aws_access_key"5
lowCredential file accesslitellm-1.84.9/litellm/proxy/db/dynamo_db.pymatched "aws_access_key"5
lowCredential file accesslitellm-1.84.9/litellm/proxy/guardrails/guardrail_hooks/bedrock_guardrails.pymatched "aws_secret_access_key"5
lowCredential file accesslitellm-1.84.9/litellm/proxy/guardrails/guardrail_initializers.pymatched "aws_access_key"5
lowCredential file accesslitellm-1.84.9/litellm/proxy/health_check.pymatched "aws_access_key"5
lowCredential file accesslitellm-1.84.9/litellm/proxy/management_endpoints/mcp_management_endpoints.pymatched "aws_access_key"5
lowCredential file accesslitellm-1.84.9/litellm/proxy/rag_endpoints/endpoints.pymatched "aws_access_key"5
lowCredential file accesslitellm-1.84.9/litellm/rag/ingestion/s3_vectors_ingestion.pymatched "aws_access_key"5
lowCredential file accesslitellm-1.84.9/litellm/realtime_api/main.pymatched "aws_access_key"5
lowCredential file accesslitellm-1.84.9/litellm/secret_managers/aws_secret_manager_v2.pymatched "AWS_ACCESS_KEY"5
lowCredential file accesslitellm-1.84.9/litellm/setup_wizard.pymatched "AWS_ACCESS_KEY"5
lowCredential file accesslitellm-1.84.9/litellm/types/guardrails.pymatched "aws_access_key"5
lowCredential file accesslitellm-1.84.9/litellm/types/mcp.pymatched "aws_access_key"5
lowCredential file accesslitellm-1.84.9/litellm/types/mcp_server/mcp_server_manager.pymatched "aws_access_key"5
lowCredential file accesslitellm-1.84.9/litellm/types/rag.pymatched "aws_access_key"5
lowCredential file accesslitellm-1.84.9/litellm/types/router.pymatched "aws_access_key"5
lowCredential file accesslitellm-1.84.9/litellm/integrations/callback_configs.jsonmatched "aws_access_key"3
lowCredential file accesslitellm-1.84.9/litellm/policy_templates_backup.jsonmatched "aws_access_key"3
lowCredential file accesslitellm-1.84.9/litellm/proxy/_lazy_openapi_snapshot.jsonmatched "aws_access_key"3
lowCredential file accesslitellm-1.84.9/litellm/proxy/_new_new_secret_config.yamlmatched "aws_access_key"3
lowCredential file accesslitellm-1.84.9/litellm/proxy/guardrails/guardrail_hooks/litellm_content_filter/patterns.jsonmatched "aws_access_key"3
lowCredential file accesslitellm-1.84.9/litellm/proxy/mcp_registry.jsonmatched "AWS_ACCESS_KEY"3
lowCredential file accesslitellm-1.84.9/litellm/proxy/public_endpoints/provider_create_fields.jsonmatched "aws_access_key"3