โ† All release notes

August 23, 2026 ยท RPA Framework

๐ŸŽ‰ RPA Framework 33.0.1

Breaking changes

  • RPA.Desktop.Windows has been removed (#1343). The pywinauto-based library has emitted a deprecation warning pointing at RPA.Windows for a long time and is no longer maintained. Use RPA.Windows for all Windows UI automation going forward.

This is not a drop-in rename. RPA.Windows is built on UIAutomation rather than pywinauto, so keyword names, arguments and locator syntax differ โ€” expect to rewrite the affected steps rather than just change the import:

# rpaframework 32.x and earlier - removed in 33.0.0 from RPA.Desktop.Windows import Windows # rpaframework 33.0.0 and later from RPA.Windows import Windows lib = Windows() lib.windows_run("notepad") lib.control_window("name:Notepad") lib.send_keys(keys="Hello")

The two examples/windows-* scripts that depended exclusively on the removed pywinauto API were removed along with the library.

Security fixes

  • RPA.Archive: Fixed a Zip Slip path traversal vulnerability (CWE-22) in Extract Archive (#1341, fixes #1339, #1340). Archive members containing path traversal sequences such as ../../evil.py could previously be written outside the requested destination directory. Extraction now validates that every member resolves inside the destination first and raises ValueError otherwise. Both the ZIP and TAR code paths are covered, for whole-archive and selected-members extraction alike.

  • Dependency bumps across the affected packages:

    • soupsieve โ‰ฅ2.8.4 โ€” HIGH, memory exhaustion via large comma-separated selector lists (CVE-2026-49476) (#1342)
    • pillow โ‰ฅ12.3.0 โ€” HIGH, heap out-of-bounds write in ImageCmsTransform.apply() (CVE-2026-59205) and a decompression-bomb DoS in PdfParser.PdfStream.decode() (CVE-2026-59200)
    • cryptography โ‰ฅ50.0.0 โ€” HIGH, Bleichenbacher oracle in PKCS#7 EnvelopedData decryption (CVE-2026-69247)
    • pypdf โ‰ฅ6.15.0 โ€” MEDIUM, excessive memory use for large /ToUnicode streams (CVE-2026-71870), in rpaframework-pdf
    • pyasn1 โ‰ฅ0.6.4 โ€” HIGH, BER/CER/DER decoder DoS via unbounded long-form tag IDs (CVE-2026-59884), and httplib2 โ‰ฅ0.32.0 โ€” HIGH, decompression-bomb DoS via unbounded gzip/deflate handling (CVE-2026-59939), both in rpaframework-google
    • setuptools โ‰ฅ83.0.0 โ€” MEDIUM, MANIFEST.in exclusion bypass via Unicode normalization collision (CVE-2026-59890), in rpaframework-sema4ai

    The pillow and cryptography floors were raised across all packages (#1350, #1338).

Fixes and improvements

  • rpaframework-core: Fixed the Windows locator parser silently mis-tokenizing a strategy when the locator value carried a stray locator= prefix or an unmatched quote character โ€” for example producing a bogus locator='executable strategy instead of recognizing executable:. A clearer warning is now surfaced when this happens (#1343, fixes #1323).

  • rpaframework-core: executable: locators are now matched case-insensitively. Windows file names are case-insensitive but the comparison was not, so executable:notepad.exe could not find a process that Windows lists as Notepad.exe โ€” as it does on Windows 11. handle: matching is numeric and is unchanged.

  • RPA.Desktop: Highlight Elements now returns the list of matched element regions instead of None, exposing the coordinates that were already being computed internally (#1343, fixes #1324):

from RPA.Desktop import Desktop desktop = Desktop() regions = desktop.highlight_elements("image:button.png") for region in regions: print(region) # region:100,200,180,240
  • rpaframework now requires rpaframework-core โ‰ฅ13.0.2, so a fresh install cannot resolve a core version that predates the Windows locator fixes RPA.Windows relies on.

Released packages

  • package rpaframework 33.0.1
  • package rpaframework-core 13.0.3
  • package rpaframework-pdf 11.0.2
  • package rpaframework-recognition 8.0.2
  • package rpaframework-google 12.0.1
  • package rpaframework-sema4ai 1.1.1