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
  • Aioboto3

Aioboto3

General Information​

FieldValue
Package Nameaioboto3
Manufacturer / VendorTerri Cain (terrycain)
Software CategoryLibrary
Primary DocumentationDocumentation, GitHub, PyPI
Programming Language(s)Python
LicenseApache License 2.0
Deployed Version(s)>=15.4.0 (version-locked at 15.5.0)
Most Recent Available Version15.5.0
Last Review Date2026-01-27

Overview​

Aioboto3 is an async wrapper library that combines boto3 and aiobotocore to provide asynchronous interaction with AWS services using Python's native async/await syntax. The library enables non-blocking AWS operations while maintaining a near-identical API to boto3, making it straightforward to migrate synchronous boto3 code to async patterns. With 961 GitHub stars and 4,300+ dependent projects, aioboto3 has become the standard solution for async AWS operations in the Python ecosystem. The project is in Production/Stable status and supports Python 3.9 through 3.14.

Within the medical device software, aioboto3 serves as the asynchronous database access layer for the API Gateway service, enabling non-blocking DynamoDB operations that integrate seamlessly with the FastAPI/Starlette async request handling architecture. It is integrated through a dedicated AsyncDynamoDBClient wrapper class that provides:

  • User credential storage: The DynamoDBUserRepository uses aioboto3 to asynchronously retrieve and store user authentication records, supporting user lookup by name (via GSI) and by primary key, as well as credential updates
  • Account lockout management: The DynamoDBLockoutRepository tracks failed authentication attempts and account lockout states, with async operations for checking lockout status during login and updating lockout records after authentication failures
  • API call audit logging: The DynamoDBCallRecordRepository persists all API interactions for regulatory compliance, recording request/response metadata, timing, user context, and error information asynchronously to avoid blocking the request pipeline
  • Connection pooling: The AsyncDynamoDBClient configures botocore connection pool settings (10 max connections) with explicit timeouts (5s connect, 30s read) to ensure efficient resource utilization and prevent connection leaks

Aioboto3 was selected over synchronous boto3 for DynamoDB operations due to:

  • Native async/await support compatible with FastAPI's async request handlers
  • Identical API to boto3, reducing learning curve and enabling code reuse patterns
  • Efficient connection handling in high-concurrency scenarios typical of API gateway workloads
  • Context manager support for proper resource lifecycle management
  • Apache 2.0 license permitting commercial use in medical device software
  • Active maintenance with regular updates tracking boto3/botocore releases

Functional Requirements​

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

Requirement IDDescriptionSource / Reference
FR-001Create async session for AWS service accessaioboto3.Session() constructor
FR-002Provide async context manager for DynamoDB resourcesession.resource('dynamodb') with async with support
FR-003Access DynamoDB tables asynchronouslyawait dynamodb.Table(table_name)
FR-004Retrieve items by primary key asynchronouslyawait table.get_item(Key=key)
FR-005Store items in DynamoDB tables asynchronouslyawait table.put_item(Item=item)
FR-006Delete items from DynamoDB tables asynchronouslyawait table.delete_item(Key=key)
FR-007Query tables with key conditions and GSI support asynchronouslyawait table.query() with KeyConditionExpression and IndexName
FR-008Support botocore configuration for connection poolingConfig object with max_pool_connections parameter
FR-009Support configurable timeouts for connect and read operationsConfig object with connect_timeout, read_timeout

Performance Requirements​

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

Requirement IDDescriptionAcceptance Criteria
PR-001Async operations shall not block the event loopNon-blocking I/O enabling concurrent request handling
PR-002DynamoDB operations shall complete within configured timeout boundsOperations timeout appropriately; no indefinite blocking
PR-003Connection pooling shall reduce connection establishment overheadReused connections for repeated requests
PR-004Memory usage shall remain stable during sustained database activityNo memory leaks during prolonged operation

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 DynamoDB service interactions
HR-002x86-64 or ARM64 processor architecturePre-built wheels available for common platforms
HR-003Sufficient system memory for response bufferingMemory scales with query result sizes

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.12 used in device)
SR-002Aiobotocore async botocore wrapperBundled dependency; provides core async AWS functionality
SR-003Aiofiles for async file operationsBundled dependency; used for S3 transfer operations
SR-004Boto3 synchronous SDKBundled via aiobotocore; provides service definitions
SR-005AWS credentials (IAM role or access keys)Via default credential chain or explicit configuration
SR-006Network access to AWS API endpointsHTTPS connectivity to regional AWS DynamoDB endpoints
SR-007Asyncio event loop for async operationsPython standard library

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

As of the review date (2026-01-27), no security vulnerabilities have been reported directly against aioboto3 in the National Vulnerability Database (NVD), GitHub Security Advisories, or Snyk vulnerability database. The reported vulnerabilities relate to transitive dependencies (urllib3 via botocore/aiobotocore) rather than aioboto3 itself.

The device's usage pattern minimizes attack surface exposure:

  • Internal service only: Aioboto3 is used exclusively within the API Gateway service for DynamoDB operations; no user-supplied AWS parameters are processed
  • IAM credential chain: The device uses IAM roles when running in AWS infrastructure; no hardcoded credentials exist in the codebase
  • HTTPS-only communication: All DynamoDB API calls use HTTPS with TLS certificate validation
  • Controlled table access: Table names are configured by operators at deployment time, not derived from user input
  • Timeout enforcement: Explicit timeout configuration (5s connect, 30s read) prevents indefinite blocking
  • Connection limits: Maximum connection pool size (10 connections) prevents resource exhaustion
  • Async isolation: Each request handler operates within its own async context, preventing cross-request interference

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
  • DynamoDB tables use encryption at rest with AWS-managed keys
  • Container isolation limits network access to required AWS endpoints only
  • Async context managers ensure proper resource cleanup on errors
  • Exception wrapping provides controlled error handling without information leakage

Assessment Methodology​

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

  • Sources consulted:

    • National Vulnerability Database (NVD) search for "aioboto3" and "aiobotocore"
    • GitHub Security Advisories for terrycain/aioboto3
    • Snyk vulnerability database for aioboto3
    • Snyk vulnerability database for aiobotocore
    • boto3 and botocore security advisories (as core dependencies)
    • PyPI package security reports
  • Criteria for determining applicability:

    • Vulnerability must affect deployed version (aioboto3 15.5.0)
    • Vulnerability must be exploitable through the device's operational context (containerized API Gateway, IAM authentication)
    • Attack vector must be reachable through the device's interfaces (no user-supplied AWS parameters)
    • Timeout configuration, credential management, and container isolation 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
R-TF-012-019 SOUPs
Next
Albumentations
  • 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.)