Skip to main content
QMSQMS
QMS
  • Welcome to your QMS
  • Quality Manual
  • Procedures
  • Records
  • Legit.Health Plus Version 1.1.0.0
    • CAPA Plan - BSI CE Mark Closeout
    • Index
    • Overview and Device Description
    • Information provided by the Manufacturer
    • Design and Manufacturing Information
      • R-TF-012-019 SOUPs
        • Aioboto3
        • Albumentations
        • Argon2-CFFI
        • Authlib
        • Boto3
        • Dependency Injector
        • Dill
        • FastAPI
        • PyTorch Grad-CAM
        • Httpx
        • NumPy
        • PyNVML
        • OpenCV
        • Pillow
        • Psutil
        • Pydantic
        • Pydantic Settings
        • PyYAML
        • Segmentation Models PyTorch
        • Starlette
        • Timm
        • PyTorch
        • TorchVision
        • Ultralytics YOLO
        • Uvicorn
      • R-TF-012-028 Software Requirement Specification
      • R-TF-012-029 Software Architecture Description
      • R-TF-012-030 Software Configuration Management Plan
      • R-TF-012-031 Product requirements specification
      • R-TF-012-037 Labeling and IFU Requirements
      • R-TF-012-040 Documentation level FDA
      • R-TF-012-041 Software Classification 62304
      • R-TF-012-043 Traceability Matrix
      • Review meetings
    • GSPR
    • Benefit-Risk Analysis and Risk Management
    • Product Verification and Validation
    • Post-Market Surveillance
  • Legit.Health Plus Version 1.1.0.1
  • Legit.Health Utilities
  • Licenses and accreditations
  • Applicable Standards and Regulations
  • Pricing
  • Public tenders
  • Legit.Health Plus Version 1.1.0.0
  • Design and Manufacturing Information
  • R-TF-012-019 SOUPs
  • Boto3

Boto3

General Information​

FieldValue
Package Nameboto3
Manufacturer / VendorAmazon Web Services (AWS)
Software CategoryLibrary
Primary DocumentationDocumentation, GitHub, PyPI, AWS SDK Guide
Programming Language(s)Python
LicenseApache License 2.0
Deployed Version(s)>=1.41.0 (version-locked at 1.40.61–1.42.26 across services)
Most Recent Available Version1.42.35
Last Review Date2026-01-27

Overview​

Boto3 is the official AWS SDK for Python, maintained and published by Amazon Web Services. It provides an object-oriented API as well as low-level access to AWS services such as Amazon S3, Amazon DynamoDB, and AWS Systems Manager Parameter Store. The SDK is built on top of botocore, which provides the low-level functionality shared between the Python SDK and the AWS CLI. With over 9,700 GitHub stars, boto3 is the de facto standard for Python applications interacting with AWS services and is in the full support phase of its availability lifecycle.

Within the medical device software, boto3 serves as the cloud infrastructure access layer enabling secure storage, configuration management, and persistent data operations across the distributed microservices architecture. It is integrated in several critical capacities:

  • Model weight storage: The legithp-expert framework uses S3 to store and retrieve pre-trained AI model weights, downloading them on-demand during expert microservice initialization via the S3Storage adapter
  • Configuration management: AWS Systems Manager Parameter Store provides centralized, encrypted configuration for all 60+ expert microservices, including inference parameters, storage credentials, and service endpoints via the SSMSettings provider
  • User authentication persistence: The API Gateway uses DynamoDB (via aioboto3 async wrapper) to store user credentials, organization data, and account lockout records through repository pattern implementations
  • Audit trail compliance: All API interactions are recorded in DynamoDB for regulatory audit compliance via the DynamoDBCallRecordRepository
  • Device labeling: The Control Plane retrieves medical device labeling information (UDI, manufacturer details) from S3 for regulatory compliance

Boto3 was selected over alternatives due to:

  • Official support and maintenance by AWS with regular updates and security patches
  • Comprehensive coverage of AWS services required by the device (S3, DynamoDB, SSM)
  • Well-documented API with extensive examples and integration guides
  • Support for both synchronous and asynchronous operations (via aioboto3)
  • Native credential chain supporting IAM roles for containerized deployments
  • Apache 2.0 license permitting commercial use in medical device software
  • Semantic versioning with backwards compatibility guarantees

Functional Requirements​

The following functional capabilities of this SOUP are relied upon by the medical device software.

Requirement IDDescriptionSource / Reference
FR-001Create S3 client with configurable credentials and regionboto3.client('s3') with credential parameters
FR-002Download objects from S3 bucketss3.get_object() with Bucket and Key parameters
FR-003Check S3 object existence and metadatas3.head_object() for existence verification
FR-004Create SSM client for parameter store accessboto3.client('ssm') with region configuration
FR-005Retrieve configuration parameters with optional decryptionssm.get_parameter() with WithDecryption=True
FR-006Create DynamoDB resource for table operationsboto3.resource('dynamodb') via aioboto3 async wrapper
FR-007Retrieve items by primary key from DynamoDB tablestable.get_item() with Key parameter
FR-008Store items in DynamoDB tablestable.put_item() with Item parameter
FR-009Delete items from DynamoDB tablestable.delete_item() with Key parameter
FR-010Query DynamoDB tables with key conditions and indexestable.query() with KeyConditionExpression and IndexName
FR-011Configure connection timeouts and pool sizesConfig object with connect_timeout, max_pool_connections

Performance Requirements​

The following performance expectations are relevant to the medical device software.

Requirement IDDescriptionAcceptance Criteria
PR-001S3 downloads shall complete within acceptable latency for model loadingModel weight downloads complete within service startup SLA
PR-002DynamoDB operations shall not introduce significant API latencyDatabase operations < 100ms under normal conditions
PR-003Connection pooling shall prevent resource exhaustionStable connection count under sustained load
PR-004SSM parameter retrieval shall support fail-fast initializationConfiguration errors detected at startup, not runtime

Hardware Requirements​

The following hardware dependencies or constraints are imposed by this SOUP component.

Requirement IDDescriptionNotes / Limitations
HR-001Network interface for AWS API communicationRequired for all AWS service interactions
HR-002Sufficient system memory for response bufferingMemory scales with S3 object sizes being downloaded
HR-003x86-64 or ARM64 processor architecturePre-built wheels available for common platforms

Software Requirements​

The following software dependencies and environmental assumptions are required by this SOUP component.

Requirement IDDescriptionDependency / Version Constraints
SR-001Python runtime environmentPython >=3.9 (Python 3.10+ recommended)
SR-002Botocore low-level libraryBundled dependency; provides core AWS functionality
SR-003AWS credentials (IAM role or access keys)Via default credential chain or explicit configuration
SR-004Network access to AWS API endpointsHTTPS connectivity to regional AWS endpoints
SR-005Async wrapper for non-blocking operationsaioboto3 >=15.4.0 for DynamoDB async operations

Known Anomalies Assessment​

This section evaluates publicly reported issues, defects, or security vulnerabilities associated with this SOUP component and their relevance to the medical device software.

Anomaly ReferenceStatusApplicableRationaleReviewed At
CVE-2025-50181 (urllib3 redirect bypass)OpenNoMedium severity (CVSS 5.3) SSRF via redirect policy bypass in urllib3 <2.5.0. Not applicable: the device does not use PoolManager-level redirect configuration and AWS SDK handles redirects internally2026-01-27
CVE-2025-50182 (urllib3 Pyodide redirect)FixedNoMedium severity (CVSS 5.3) redirect control vulnerability in Pyodide runtime. Not applicable: the device runs in standard Python runtime environment, not Pyodide/browser contexts2026-01-27
GitHub Issue #3499 (botocore urllib3 version constraint)OpenNoBotocore constrains urllib3 to <1.27, preventing upgrade to 2.5.0. Not applicable: the device's usage pattern does not expose the vulnerable redirect configuration; AWS SDK uses standard credential flows2026-01-27

Boto3 is actively maintained by Amazon Web Services with a robust security response process. The project maintains a security policy directing reporters to use AWS's vulnerability reporting page or email aws-security@amazon.com rather than public GitHub issues. According to Snyk's vulnerability database, boto3 itself has no direct known vulnerabilities; reported issues relate to transitive dependencies (urllib3).

The device's usage pattern minimizes attack surface exposure:

  • AWS credential chain: The device uses IAM roles when running in AWS infrastructure or environment variables for local deployment; no hardcoded credentials exist in the codebase
  • HTTPS-only communication: All AWS API calls use HTTPS with TLS certificate validation
  • Internal network isolation: AWS service calls originate from containerized microservices within controlled network boundaries
  • No user-supplied AWS parameters: Bucket names, table names, and parameter paths are configured by operators, not derived from user input
  • Version locking: Requirements lock files pin boto3 to specific versions (1.40.61–1.42.26) ensuring reproducible deployments
  • Connection timeouts: Explicit timeout configuration (5s connect, 30s read) prevents indefinite hangs

Risk Control Measures​

The following risk control measures are implemented to mitigate potential security and operational risks associated with this SOUP component:

  • Version locking via requirements_lock.txt ensures reproducible, auditable deployments
  • IAM roles with least-privilege permissions limit potential blast radius of credential compromise
  • All S3 buckets use server-side encryption (SSE-S3 or SSE-KMS) for data at rest
  • DynamoDB tables use encryption at rest with AWS-managed keys
  • SSM parameters use SecureString type with KMS encryption for sensitive values
  • Container isolation limits network access to required AWS endpoints only
  • Circuit breaker patterns prevent cascading failures from AWS service unavailability

Assessment Methodology​

The following methodology was used to identify and assess known anomalies:

  • Sources consulted:

    • National Vulnerability Database (NVD) search for "boto3" and "botocore"
    • GitHub Security Advisories for boto/boto3
    • GitHub Security Advisories for boto/botocore
    • Snyk vulnerability database for boto3
    • Snyk vulnerability database for botocore
    • AWS Security Bulletins and ALAS (Amazon Linux Security Advisories)
    • PyPI package security reports
  • Criteria for determining applicability:

    • Vulnerability must affect deployed versions (boto3 1.40.61–1.42.26)
    • Vulnerability must be exploitable through the device's operational context (containerized microservices, IAM authentication)
    • Attack vector must be reachable through the device's interfaces (no user-supplied AWS parameters)
    • Network isolation, credential management, and encryption controls must not already mitigate the vulnerability

Signature meaning

The signatures for the approval process of this document can be found in the verified commits at the repository for the QMS. As a reference, the team members who are expected to participate in this document and their roles in the approval process, as defined in Annex I Responsibility Matrix of the GP-001, are:

  • Author: Team members involved
  • Reviewer: JD-003, JD-004
  • Approver: JD-001
Previous
Authlib
Next
Dependency Injector
  • General Information
  • Overview
  • Functional Requirements
  • Performance Requirements
  • Hardware Requirements
  • Software Requirements
  • Known Anomalies Assessment
    • Risk Control Measures
    • Assessment Methodology
All the information contained in this QMS is confidential. The recipient agrees not to transmit or reproduce the information, neither by himself nor by third parties, through whichever means, without obtaining the prior written permission of Legit.Health (AI Labs Group S.L.)