Use studio look in Google Meet to look your best

This announcement was made at Google Cloud Next ‘23. Visit the Workspace Blog to learn more about the next wave of AI innovation in Workspace. This feature is exclusive to the Duet AI for Google Workspace Enterprise add-on.



What’s changing

Google Meet already offers a variety of tools to help you appear your best during meetings, including automatic framing and lighting adjustments. Today, we’re taking these enhancements a step further by introducing studio look in Google Meet, powered by Duet AI. Studio look enhances the quality of your portrait by reducing noise and increasing sharpness, bringing you into focus more clearly.


In the hybrid work world, our video feeds can be hindered by low light or lower quality webcams. Studio look helps ensure you’re coming across crisp and in focus, helping strengthen human connections in a hybrid work world.

For illustrative purposes only — to use Studio Light, go to settings > video > studio look.


Getting started

  • Admins: There is no admin control for this feature.
  • End users: This feature will be available by default. You can turn studio look on before a call or during a call from the three-dot settings menu. Visit the Help Center to learn more about improving your video experience with studio look.

Rollout pace 

Availability 


Stable Channel Update for Desktop

The Stable and Extended stable channels has been updated to 116.0.5845.140 for Mac and Linux and 116.0.5845.140/.141 for Windows, which will roll out over the coming days/weeks. A full list of changes in this build is available in the log.


Security Fixes and Rewards

Note: Access to bug details and links may be kept restricted until a majority of users are updated with a fix. We will also retain restrictions if the bug exists in a third party library that other projects similarly depend on, but haven’t yet fixed.



This update includes 1 security fix. Below, we highlight fixes that were contributed by external researchers. Please see the Chrome Security Page for more information.



[$TBD][1472492] High CVE-2023-4572: Use after free in MediaStream. Reported by fwnfwn(@_fwnfwn) on 2023-08-12



We would also like to thank all security researchers that worked with us during the development cycle to prevent security bugs from ever reaching the stable channel.



Many of our security bugs are detected using AddressSanitizer, MemorySanitizer, UndefinedBehaviorSanitizer, Control Flow Integrity, libFuzzer, or AFL.


Interested in switching release channels?  Find out how here. If you find a new issue, please let us know by filing a bug. The community help forum is also a great place to reach out for help or learn about common issues.



Daniel Yip
Google Chrome

Turn ideas into action using Google Sheets

This announcement was made at Google Cloud Next ‘23. Visit the Workspace Blog to learn more about the next wave of AI innovation in Workspace. This feature is exclusive to the Duet AI for Google Workspace Enterprise add-on.


What’s changing

Through Duet AI for Google Workspace, you can now use Google Sheets to quickly get started organizing your data in a straightforward, highly-visual manner. By simply describing what you want to accomplish using Help me organize, Sheets will generate a plan, tracker, budget, schedule, and more in the form of a template with sample text and smart chips that are easily editable. Once inserted into the grid, you can make the template your own by assigning owners, updating statuses, and bringing in relevant information such as location or time. 


Whether you’re a travel agent planning a trip for a company retreat or a team lead establishing onboarding plans for new hires, Help me organize gives you a running start for creating highly-organized plans, trackers, timelines and more. 
Turn ideas into action using Google Sheets

Who’s impacted 

End users 


Why it’s important 

Through the power of Duet AI for Google Workspace, you can now get started organizing information faster than ever before in Google Sheets. 


Additional details 

Help me organize makes template tables with sample data, and does not have access to the data within your spreadsheet or elsewhere. 


Getting started 

  • Admins: This feature will be ON by default and there is no admin control for this feature. Visit the Help Center to learn more about Duet AI for Google Workspace Enterprise.
  • End users: 
    • To use the Help me organize feature, write a description of what you need in the sidebar > click Create > View the generated table preview. 
      • Note: You must write a minimum of 2 characters in the sidebar. The maximum number of characters is 150. 
    • The Help me organize sidebar is surfaced for any empty tab (new or existing Sheets files). 
    • You can re-open Help me organize from the insert menu or the toolbar via a new icon. You can also re-trigger the sidebar when adding a new tab. 
    • Visit the Help Center to learn more about organizing with Duet AI in Google Sheets

Rollout pace 

Availability 

Resources 

Track the carbon footprint associated with the usage of Google Workspace across your organization

This announcement was made at Google Cloud Next ‘23. Visit the Workspace Blog to learn more about the next wave of AI innovation in Workspace. 



What’s changing 

If you’re a Google Workspace admin, you can now track the carbon footprint and gross emissions of using Google Workspace. This means you can track the emissions impact of tools such as Google Meet, Gmail, Google Docs, and more.




Who’s impacted

Admins


Why it matters 

We’ve heard from our customers that it would be helpful to understand their organization’s carbon emissions from Google Workspace product usage. For many of our customers, sustainability has become an increasingly important factor for IT-related decision making and resource allocation. 


We’re making this information easily accessible to our customers in the Admin console. Using the Carbon Footprint reporting tool, you can:
  • View aggregated emission data for your organization over time, broken down by service. You’ll be able to sort this information, month over month as well. 
  • You can break down emission data by service, such as Gmail or Drive .


Additional details

At Google, we continue to make product and operational improvements to reduce environmental impact. Our goal is to run on carbon-free energy, 24/7, at all of our data centers and cloud regions by 2030. Plus, we’re sharing technology, methods, and funding to enable organizations around the world to transition to more carbon-free and sustainable systems — see here for more information about our sustainability commitments.


Google uses the Greenhouse Gas Protocol, the global standard for carbon accounting to generate the Carbon footprint reports. We recommend that admins familiarize themselves with the GHG terminology — you can find more information in our Help Center or the video below.


Getting started

  • Admins: You can find your Carbon Footprint report in the Admin console under Reporting > Carbon footprint. Visit the Help Center to learn more about the Workspace Carbon Footprint.


Rollout pace


Availability


Resources


Duet AI for Google Workspace Enterprise add-on is now generally available

This announcement was made at Google Cloud Next ‘23. Visit the Workspace Blog to learn more about the next wave of AI innovation in Workspace. This feature is exclusive to the Duet AI for Google Workspace Enterprise add-on.


What’s changing

From the beginning, Google Workspace was built to allow you to collaborate in real time with other people. And with the launch of Duet AI, we’re making it possible to collaborate just as easily with AI. Duet AI is a powerful collaborator that can act as a coach, thought partner, source of inspiration, and productivity booster — all while ensuring every user and organization has control over their data.


Beginning today, Duet AI for Workspace Enterprise is now generally available. You can preview the power of Duet AI with a no-cost trial.


Who’s impacted

Admins


Why it’s important

Duet AI for Google Workspace Enterprise enables organizations to create, connect, and collaborate like never before.

You can use Duet AI to:
  • Help you write and refine emails in Gmail - even on the go from your mobile device
  • Help you write, refine, and proofread content in Google Docs
  • Generate original images for your presentations directly in Google Slides
  • Create plans for projects in Google Sheets with just a simple prompt
  • Look your best in Google Meet with studio look 
  • Generate  background images in Google Meet
  • Use translated captions in Google Meet

In the coming months, we’ll be introducing more features for Duet AI such as studio lighting and sound for Meet, Enhanced Smart Fill for Google Sheets and more. We’ll share more details here on the Workspace Updates blog as those features become available.

Getting started


Availability

The Duet AI for Google Workspace Enterprise add-on is available for purchase with the following Google Workspace editions:
  • Business Standard and Business Plus, Enterprise Essentials, Enterprise Essentials Plus, Enterprise Standard and Enterprise Plus, Education Fundamentals, Education Standard, Education Plus, Education Fundamentals, Frontline Starter and Frontline Standard
Note: Duet AI features are only available for users over the age of 18.


Android Goes All-in on Fuzzing

Fuzzing is an effective technique for finding software vulnerabilities. Over the past few years Android has been focused on improving the effectiveness, scope, and convenience of fuzzing across the organization. This effort has directly resulted in improved test coverage, fewer security/stability bugs, and higher code quality. Our implementation of continuous fuzzing allows software teams to find new bugs/vulnerabilities, and prevent regressions automatically without having to manually initiate fuzzing runs themselves. This post recounts a brief history of fuzzing on Android, shares how Google performs fuzzing at scale, and documents our experience, challenges, and success in building an infrastructure for automating fuzzing across Android. If you’re interested in contributing to fuzzing on Android, we’ve included instructions on how to get started, and information on how Android’s VRP rewards fuzzing contributions that find vulnerabilities.

A Brief History of Android Fuzzing

Fuzzing has been around for many years, and Android was among the early large software projects to automate fuzzing and prioritize it similarly to unit testing as part of the broader goal to make Android the most secure and stable operating system. In 2019 Android kicked off the fuzzing project, with the goal to help institutionalize fuzzing by making it seamless and part of code submission. The Android fuzzing project resulted in an infrastructure consisting of Pixel phones and Google cloud based virtual devices that enabled scalable fuzzing capabilities across the entire Android ecosystem. This project has since grown to become the official internal fuzzing infrastructure for Android and performs thousands of fuzzing hours per day across hundreds of fuzzers.

Under the Hood: How Is Android Fuzzed

Step 1: Define and find all the fuzzers in Android repo

The first step is to integrate fuzzing into the Android build system (Soong) to enable build fuzzer binaries. While developers are busy adding features to their codebase, they can include a fuzzer to fuzz their code and submit the fuzzer alongside the code they have developed. Android Fuzzing uses a build rule called cc_fuzz (see example below). cc_fuzz (we also support rust_fuzz and java_fuzz) defines a Soong module with source file(s) and dependencies that can be built into a binary.

cc_fuzz {
  name: "fuzzer_foo",

  srcs: [
    "fuzzer_foo.cpp",
  ],

  static_libs: [
    "libfoo",
  ],

  host_supported: true,
}

A packaging rule in Soong finds all of these cc_fuzz definitions and builds them automatically. The actual fuzzer structure itself is very simple and consists of one main method (LLVMTestOneInput):

#include <stddef.h>
#include <stdint.h>

extern "C" int LLVMFuzzerTestOneInput(
               const uint8_t *data,
               size_t size) {

  // Here you invoke the code to be fuzzed. 
  return 0;
}

This fuzzer gets automatically built into a binary and along with its static/dynamic dependencies (as specified in the Android build file) are packaged into a zip file which gets added to the main zip containing all fuzzers as shown in the example below.

Step 2: Ingest all fuzzers into Android builds

Once the fuzzers are found in the Android repository and they are built into binaries, the next step is to upload them to the cloud storage in preparation to run them on our backend. This process is run multiple times daily. The Android fuzzing infrastructure uses an open source continuous fuzzing framework (Clusterfuzz) to run fuzzers continuously on Android devices and emulators. In order to run the fuzzers on clusterfuzz, the fuzzers zip files are renamed after the build and the latest build gets to run (see diagram below):

The fuzzer zip file contains the fuzzer binary, corresponding dictionary as well as a subfolder containing its dependencies and the git revision numbers (sourcemap) corresponding to the build. Sourcemaps are used to enhance stack traces and produce crash reports.

Step 3: Run fuzzers continuously and find bugs

Running fuzzers continuously is done through scheduled jobs where each job is associated with a set of physical devices or emulators. A job is also backed by a queue that represents the fuzzing tasks that need to be run. These tasks are a combination of running a fuzzer, reproducing a crash found in an earlier fuzzing run, or minimizing the corpus, among other tasks.

Each fuzzer is run for multiple hours, or until they find a crash. After the run, Haiku takes all of the interesting input discovered during the run and adds it to the fuzzer corpus. This corpus is then shared across fuzzer runs and grows over time. The fuzzer is then prioritized in subsequent runs according to the growth of new coverage and crashes found (if any). This ensures we provide the most effective fuzzers more time to run and find interesting crashes.

Step 4: Generate fuzzers line coverage

What good is a fuzzer if it’s not fuzzing the code you care about? To improve the quality of the fuzzer and to monitor the overall progress of Android fuzzing, two types of coverage metrics are calculated and available to Android developers. The first metric is for edge coverage which refers to edges in the Control Flow Graph (CFG). By instrumenting the fuzzer and the code being fuzzed, the fuzzing engine can track small snippets of code that get triggered every time execution flow reaches them. That way, fuzzing engines know exactly how many (and how many times) each of these instrumentation points got hit on every run so they can aggregate them and calculate the coverage.

INFO: Seed: 2859304549
INFO: Loaded 1 modules   (773 inline 8-bit counters): 773 [0x5610921000, 0x5610921305),
INFO: Loaded 1 PC tables (773 PCs): 773 [0x5610921308,0x5610924358),
INFO: -max_len is not provided; libFuzzer will not generate inputs larger than 4096 bytes
INFO: A corpus is not provided, starting from an empty corpus
#2      INITED cov: 2 ft: 2 corp: 1/1b lim: 4 exec/s: 0 rss: 24Mb
#413    NEW    cov: 3 ft: 3 corp: 2/9b lim: 8 exec/s: 0 rss: 24Mb L: 8/8 MS: 1 InsertRepeatedBytes-
#3829   NEW    cov: 4 ft: 4 corp: 3/17b lim: 38 exec/s: 0 rss: 24Mb L: 8/8 MS: 1 ChangeBinInt-
...

Line coverage inserts instrumentation points specifying lines in the source code. Line coverage is very useful for developers as they can pinpoint areas in the code that are not covered and update their fuzzers accordingly to hit those areas in future fuzzing runs.

Drilling into any of the folders can show the stats per file:

Further clicking on one of the files shows the lines that were touched and lines that never got coverage. In the example below, the first line has been fuzzed ~5 million times, but the fuzzer never makes it into lines 3 and 4, indicating a gap in the coverage for this fuzzer.

We have dashboards internally that measure our fuzzing coverage across our entire codebase. In order to generate these coverage dashboards yourself, you follow these steps.

Another measurement of the quality of the fuzzers is how many fuzzing iterations can be done in one second. It has a direct relationship with the computation power and the complexity of the fuzz target. However, this parameter alone can not measure how good or effective the fuzzing is.

How we handle fuzzer bugs

Android fuzzing utilizes the Clusterfuzz fuzzing infrastructure to handle any found crashes and file a ticket to the Android security team. Android security makes an assessment of the crash based on the Android Severity Guidelines and then routes the vulnerability to the proper team for remediation. This entire process of finding the reproducible crash, routing to Android Security, and then assigning the issue to a team responsible can take as little as two hours, and up to a week depending on the type of crash and the severity of the vulnerability.

One example of a recent fuzzer success is (CVE 2022-20473), where an internal team wrote a 20-line fuzzer and submitted it to run on Android fuzzing infra. Within a day, the fuzzer was ingested and pushed to our fuzzing infrastructure to begin fuzzing, and shortly found a critical severity vulnerability! A patch for this CVE has been applied by the service team.

Why Android Continues to Invest in Fuzzing

Protection Against Code Regressions

The Android Open Source Project (AOSP) is a large and complex project with many contributors. As a result, there are thousands of changes made to the project every day. These changes can be anything from small bug fixes to large feature additions, and fuzzing helps to find vulnerabilities that may be inadvertently introduced and not caught during code review.

Continuous fuzzing has helped to find these vulnerabilities before they are introduced in production and exploited by attackers. One real-life example is (CVE-2023-21041), a vulnerability discovered by a fuzzer written three years ago. This vulnerability affected Android firmware and could have led to local escalation of privilege with no additional execution privileges needed. This fuzzer was running for many years with limited findings until a code regression led to the introduction of this vulnerability. This CVE has since been patched.

Protection against unsafe memory language pitfalls

Android has been a huge proponent of Rust, with Android 13 being the first Android release with the majority of new code in a memory safe language. The amount of new memory-unsafe code entering Android has decreased, but there are still millions of lines of code that remain, hence the need for fuzzing persists.

No One Code is Safe: Fuzzing code in memory-safe languages

Our work does not stop with non-memory unsafe languages, and we encourage fuzzer development in languages like Rust as well. While fuzzing won’t find common vulnerabilities that you would expect to see memory unsafe languages like C/C++, there have been numerous non-security issues discovered and remediated which contribute to the overall stability of Android.

Fuzzing Challenges

In addition to generic C/C++ binaries issues such as missing dependencies, fuzzers can have their own classes of problems:

Low executions per second: in order to fuzz efficiently, the number of mutations has to be in the order of hundreds per second otherwise the fuzzing will take a very long time to cover the code. We addressed this issue by adding a set of alerts that continuously monitor the health of the fuzzers as well as any sudden drop in coverage. Once a fuzzer is identified as underperforming, an automated email is sent to the fuzzer author with details to help them improve the fuzzer.

Fuzzing the wrong code: Like all resources, fuzzing resources are limited. We want to ensure that those resources give us the highest return, and that generally means devoting them towards fuzzing code that processes untrusted (i.e. potentially attacker controlled) inputs. This can cover any way that the phone can receive input including Bluetooth, NFC, USB, web, etc. Parsing structured input is particularly interesting since there is room for programming errors due to specs complexity. Code that generates output is not particularly interesting to fuzz. Similarly internal code that is not exposed publicly is also less of a security concern. We addressed this issue by identifying the most vulnerable code (see the following section).

What to fuzz

In order to fuzz the most important components of the Android source code, we focus on libraries that have:

  1. A history of vulnerabilities: the history should not be the distant history since context change but more focus on the last 12 months.
  2. Recent code changes: research indicates that more vulnerabilities are found in recently changed code than code that is more stable.
  3. Remote access: vulnerabilities in code that are reachable remotely can be critical.
  4. Privileged: Similarly to #3, vulnerabilities in code that runs in privileged processes can be critical.

How to submit a fuzzer to AOSP

We’re constantly writing and improving fuzzers internally to cover some of the most sensitive areas of Android, but there is always room for improvement. If you’d like to get started writing your own fuzzer for an area of AOSP, you’re welcome to do so to make Android more secure (example CL)::

  1. Get Android source code
  2. Have a testing phone?
  3. Write a fuzz target (follow guidelines in ‘What to fuzz’ section)
  4. Upload your fuzzer to AOSP.

Get started by reading our documentation on Fuzzing with libFuzzer and check your fuzzer into the Android Open Source project. If your fuzzer finds a bug, you can submit it to the Android Bug Bounty Program and could be eligible for a reward!

Chrome Stable for iOS Update

Hi everyone! We've just released Chrome Stable 116 (116.0.5845.146) for iOS; it'll become available on App Store in the next few hours.

This release includes stability and performance improvements. You can see a full list of the changes in the Git log. If you find a new issue, please let us know by filing a bug.

Erhu Akpobaro
Google Chrome